From: Martin Sebor Date: Mon, 29 Mar 2021 19:52:53 +0000 (-0600) Subject: PR tree-optimization/61112 - repeated conditional triggers false positive -Wmaybe... X-Git-Tag: basepoints/gcc-12~361 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77093a75ca4f3a0d6d9ca77ca8905b77695a2599;p=thirdparty%2Fgcc.git PR tree-optimization/61112 - repeated conditional triggers false positive -Wmaybe-uninitialized gcc/testsuite/ChangeLog: PR tree-optimization/61112 * gcc.dg/uninit-pr61112.c: New test. --- diff --git a/gcc/testsuite/gcc.dg/uninit-pr61112.c b/gcc/testsuite/gcc.dg/uninit-pr61112.c new file mode 100644 index 000000000000..1dbf756f01da --- /dev/null +++ b/gcc/testsuite/gcc.dg/uninit-pr61112.c @@ -0,0 +1,89 @@ +/* PR tree-optimization/61112 - repeated conditional triggers false-positive + -Wmaybe-uninitialized warning + { dg-do compile } + { dg-options "-O2 -Wall" } */ + +int p; + +void foo_c0 (int x, int y, int z) +{ + int w; + if (x) + w = z; + if (y) + w = __LINE__; + + if (x || y) + p = w; // { dg-bogus "-Wmaybe-uninitialized" } +} + + +void foo_c5_1_1 (int x, int y, int z, int a) +{ + int w; + if (x) + w = z; + if (y) + w = __LINE__; + if (a) + w = __LINE__; + + if (x || y || a) + p = w; // { dg-bogus "-Wmaybe-uninitialized" "pr61112" { xfail *-*-* } } +} + +void foo_c5_1_2 (int x, int y, int z, int a) +{ + int w; + if (x) + w = z; + if (y) + w = __LINE__; + if (a) + w = __LINE__; + + if (x || a || y) + p = w; // { dg-bogus "-Wmaybe-uninitialized" "pr61112" { xfail *-*-* } } +} + +void foo_c5_1_3 (int x, int y, int z, int a) +{ + int w; + if (x) + w = z; + if (y) + w = __LINE__; + if (a) + w = __LINE__; + + if (a || x || y) + p = w; // { dg-bogus "-Wmaybe-uninitialized" "pr61112" { xfail *-*-* } } +} + +void foo_c5_2 (int x, int y, int z, int a) +{ + int w; + if (x) + w = __LINE__; + if (y) + w = z; + if (a) + w = __LINE__; + + if (x || y || a) + p = w; // { dg-bogus "-Wmaybe-uninitialized" } +} + +void foo_c5_3 (int x, int y, int z, int a) +{ + int w; + if (x) + w = __LINE__; + if (y) + w = __LINE__; + if (a) + w = z; + + if (x || y || a) + p = w; // { dg-bogus "-Wmaybe-uninitialized" } +}