testsuite: Add -fno-tree-loop-distribute-patterns.
authorRobin Dapp <rdapp@linux.ibm.com>
Fri, 1 Apr 2022 07:52:56 +0000 (09:52 +0200)
committerRobin Dapp <rdapp@linux.ibm.com>
Tue, 5 Apr 2022 06:43:39 +0000 (08:43 +0200)
In gcc.dg/Wuse-after-free-2.c we try to detect a use-after-free.  The
test's while loop is converted into a rawmemchr builtin making
it impossible to determine that the pointers *p and *q are related.

Therefore, disable the tree loop distribute patterns pass for this test.

gcc/testsuite/ChangeLog:

* gcc.dg/Wuse-after-free-2.c:
Add -fno-tree-loop-distribute-patterns in order to avoid
rawmemchr.

gcc/testsuite/gcc.dg/Wuse-after-free-2.c

index 9f7ed45..68ec758 100644 (file)
@@ -1,6 +1,6 @@
 /* PR middle-end/104232 - spurious -Wuse-after-free after conditional free
    { dg-do compile }
-   { dg-options "-O2 -Wall" } */
+   { dg-options "-O2 -Wall -fno-tree-loop-distribute-patterns" }  */
 
 void free (void*);
 
@@ -107,6 +107,8 @@ int warn_cond_loop (char *p)
 {
   char *q = p;
 
+  /*  -fno-tree-loop-distribute-patterns ensures this does not get converted
+      into rawmemchr (making q and p unrelated).  */
   while (*q)
     ++q;