diff options
author | Martin Sebor <msebor@redhat.com> | 2021-07-06 15:58:02 -0600 |
---|---|---|
committer | Martin Sebor <msebor@redhat.com> | 2021-07-06 15:58:02 -0600 |
commit | e8db5f70f27b6de8139339ef1866eaa153c2bf67 (patch) | |
tree | 8702323569dacc8accb6502e9a3c7ca2f7ff525c /gcc | |
parent | ee9a0e93156ff3d41450db74172abc8ae2471d1f (diff) | |
download | gcc-e8db5f70f27b6de8139339ef1866eaa153c2bf67.zip gcc-e8db5f70f27b6de8139339ef1866eaa153c2bf67.tar.gz gcc-e8db5f70f27b6de8139339ef1866eaa153c2bf67.tar.bz2 |
Add test for [PR55881].
PR c++/55881
gcc/testsuite/ChangeLog:
* g++.dg/warn/uninit-pr55881.C: New test.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/g++.dg/warn/uninit-pr55881.C | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/warn/uninit-pr55881.C b/gcc/testsuite/g++.dg/warn/uninit-pr55881.C new file mode 100644 index 0000000..b01f4e7 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/uninit-pr55881.C @@ -0,0 +1,34 @@ +/* PR middle-end/55881 - #pragma GCC diagnostic ignored ignored when inlining + { dg-do compile } + { dg-options "-O2 -Wall" } */ + +struct I +{ + int i; + int foo (struct I *n) + { + return n->i + 10; // { dg-bogus "-Wmaybe-uninitialized" } + } + + I () : i (5) {} +}; + +int main (int argc, char **) +{ + struct I i, *n; + + if (argc > 10) + { + n = new I; + i.i = i.foo (n); + } + + if (argc > 2) + { +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" + return i.foo (n); +#pragma GCC diagnostic pop + } + + return 0; +} |