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 <[email protected]>
---
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