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

Reply via email to