1 /* { dg-skip-if "requires alloca" { ! alloca } { "-O0" } { "" } } */ 2 extern void abort (void); 3 4 extern __SIZE_TYPE__ strlen (const char *); foo(char * str)5void foo(char *str) 6 { 7 int len2 = strlen (str); 8 char *a = (char *) __builtin_alloca (0); 9 char *b = (char *) __builtin_alloca (len2*3); 10 11 if ((int) (a-b) < (len2*3)) 12 { 13 #ifdef _WIN32 14 abort (); 15 #endif 16 return; 17 } 18 } 19 20 static char * volatile argp = "pr36321.x"; 21 main(int argc,char ** argv)22int main(int argc, char **argv) 23 { 24 foo (argp); 25 return 0; 26 } 27 28