aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2021-03-29 15:21:32 -0600
committerMartin Sebor <msebor@redhat.com>2021-03-29 15:23:03 -0600
commitfecc835e216f537d3e7edb833cb3769489b983bb (patch)
tree38ab1676239efde888a7908132e90acac73b67ab /gcc
parent645bfc161987a12395869728b63ed01084d23c00 (diff)
downloadgcc-fecc835e216f537d3e7edb833cb3769489b983bb.zip
gcc-fecc835e216f537d3e7edb833cb3769489b983bb.tar.gz
gcc-fecc835e216f537d3e7edb833cb3769489b983bb.tar.bz2
PR tree-optimization/61677 - False positive with -Wmaybe-uninitialized
gcc/testsuite/ChangeLog: PR tree-optimization/61677 * gcc.dg/uninit-pr61677.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.dg/uninit-pr61677.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/uninit-pr61677.c b/gcc/testsuite/gcc.dg/uninit-pr61677.c
new file mode 100644
index 0000000..a982fae
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/uninit-pr61677.c
@@ -0,0 +1,26 @@
+/* PR tree-optimization/61677 - False positive with -Wmaybe-uninitialized
+ { dg-do compile }
+ { dg-options "-O2 -Wall" } */
+
+void *xmalloc (void);
+
+struct menu { struct menu *parent; };
+
+struct jump_key { int offset; };
+
+void f (struct menu *menu)
+{
+ int i;
+ struct menu *submenu[8], *location;
+ struct jump_key *jump;
+ location = menu;
+ for (i = 0; menu && i < 8; menu = menu->parent)
+ submenu[i++] = menu;
+ if (location)
+ jump = xmalloc ();
+ while (--i >= 0) {
+ menu = submenu[i];
+ if (location)
+ jump->offset = 42;
+ }
+}