diff options
author | Martin Sebor <msebor@redhat.com> | 2021-04-09 11:40:48 -0600 |
---|---|---|
committer | Martin Sebor <msebor@redhat.com> | 2021-04-09 11:40:48 -0600 |
commit | b04093adb28bd6ee8b0390e840219fd2bba134db (patch) | |
tree | edb9c51d92087a665da81e751fa62b66014502aa /gcc | |
parent | 1a5c82919c27a6af5eba0c2ba147dd011003cf72 (diff) | |
download | gcc-b04093adb28bd6ee8b0390e840219fd2bba134db.zip gcc-b04093adb28bd6ee8b0390e840219fd2bba134db.tar.gz gcc-b04093adb28bd6ee8b0390e840219fd2bba134db.tar.bz2 |
PR middle-end/55288 - Improve handling/suppression of maybe-uninitialized warnings
gcc/testsuite/ChangeLog:
PR middle-end/55288
* g++.dg/warn/uninit-pr55288.C: New test.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/g++.dg/warn/uninit-pr55288.C | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/warn/uninit-pr55288.C b/gcc/testsuite/g++.dg/warn/uninit-pr55288.C new file mode 100644 index 0000000..12fbc56 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/uninit-pr55288.C @@ -0,0 +1,43 @@ +/* PR tree-optimization/55288 - Improve handling/suppression of + maybe-uninitialized warnings + { dg-do compile } + { dg-options "-O2 -Wall" } */ + +struct iterator +{ + operator int (); + iterator operator++ (int); +}; + +void bar (int); + +static void foo (int x) +{ + bar (x); // { dg-bogus "uninitialized" } +} + +int baz (iterator j, iterator end, int p) +{ + bool valid = false; + int q; + for (; j != end; j++) { + if (p > j) { + if (not valid) + p = j; + break; + } + else if (p == j) { + valid = true; + q = -1; + } + else { + valid = true; + q = j; + } + } + + if (valid) + foo (q); + + return p; +} |