1 /* { dg-do compile } */ 2 /* { dg-require-effective-target alloca } */ 3 /* { dg-options "-Walloca-larger-than=5000 -O2" } */ 4 5 char * _i18n_number_rewrite(char * w,char * rear_ptr)6 _i18n_number_rewrite (char *w, char *rear_ptr) 7 { 8 9 char *src; 10 _Bool use_alloca = (((rear_ptr - w) * sizeof (char)) < 4096U); 11 if (use_alloca) 12 src = (char *) __builtin_alloca ((rear_ptr - w) * sizeof (char)); 13 else 14 src = (char *) __builtin_malloc ((rear_ptr - w) * sizeof (char)); 15 return src; 16 } 17 18 /* { dg-prune-output "-Wreturn-local-addr" } */ 19