From e8db5f70f27b6de8139339ef1866eaa153c2bf67 Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Tue, 6 Jul 2021 15:58:02 -0600 Subject: [PATCH] Add test for [PR55881]. PR c++/55881 gcc/testsuite/ChangeLog: * g++.dg/warn/uninit-pr55881.C: New test. --- gcc/testsuite/g++.dg/warn/uninit-pr55881.C | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 gcc/testsuite/g++.dg/warn/uninit-pr55881.C 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; +} -- 2.7.4