The problem here is after r16-101, the 2 functions containing alloca/VLA start to be cloned and then we un-VLA happens in using_vararray so this is no longer testing what it should be testing. The obvious fix is to mark using_vararray and using_alloca as noclone too.
Pushed as obvious after a quick test to make sure it is now working. gcc/testsuite/ChangeLog: PR testsuite/121684 * c-c++-common/hwasan/unprotected-allocas-0.c: Mark using_vararray and using_alloca as noclone too. Signed-off-by: Andrew Pinski <andrew.pin...@oss.qualcomm.com> --- gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-0.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; -- 2.43.0