From 321d1dcf610d8af8da4c1feb76819fea24fcd27e Mon Sep 17 00:00:00 2001 From: Robin Dapp Date: Fri, 1 Apr 2022 09:52:56 +0200 Subject: [PATCH] testsuite: Add -fno-tree-loop-distribute-patterns. 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 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.dg/Wuse-after-free-2.c b/gcc/testsuite/gcc.dg/Wuse-after-free-2.c index 9f7ed4529f0c..68ec75845cec 100644 --- a/gcc/testsuite/gcc.dg/Wuse-after-free-2.c +++ b/gcc/testsuite/gcc.dg/Wuse-after-free-2.c @@ -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; -- 2.47.2