https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121684
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |16.0 Status|UNCONFIRMED |ASSIGNED Ever confirmed|0 |1 Target|aarch64-linux-gnu | Component|sanitizer |testsuite Last reconfirmed| |2025-08-27 --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- ``` diff --git a/gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-0.c b/gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-0.c index 88465155c6d..0feca6a6d9d 100644 --- a/gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-0.c +++ b/gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-0.c @@ -12,7 +12,7 @@ char tag_of (void * x) { return ((unsigned long long)x) >> 56; } -int __attribute__ ((noinline)) +int __attribute__ ((noinline,noclone)) using_alloca (int num) { int retval = 0; @@ -25,7 +25,7 @@ using_alloca (int num) return retval; } -int __attribute__ ((noinline)) +int __attribute__ ((noinline,noclone)) using_vararray (int num) { int retval = 0; ``` Because at -O3, these functions will be cloned and constant proped in. and for using_vararray we get: ``` unsigned char big_array.12[48]; long long unsigned int x.0_5; long long unsigned int _6; <bb 2> [local count: 118111600]: x.0_5 = (long long unsigned int) &big_array.12; ``` Which is not what we were testing. Will apply this as obvious in a few hours.