aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/tree-ssa/pr26757.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/tree-ssa/pr26757.C')
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/tree-ssa/pr26757.C44
1 files changed, 44 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/tree-ssa/pr26757.C b/gcc-4.9/gcc/testsuite/g++.dg/tree-ssa/pr26757.C
new file mode 100644
index 000000000..4d124e3c4
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/g++.dg/tree-ssa/pr26757.C
@@ -0,0 +1,44 @@
+// PR c++/26757
+// { dg-do run }
+// { dg-options "-O" }
+
+extern "C" void abort ();
+
+typedef struct A
+{
+ int c;
+ int d;
+} A;
+
+A *b;
+
+void
+foo ()
+{
+ b->c++;
+ extern A *b;
+ b->d++;
+
+}
+
+void
+bar ()
+{
+ if (b->d)
+ b->c++;
+}
+
+
+int
+main ()
+{
+ A a = { 0, 0 };
+ b = &a;
+ foo ();
+ bar ();
+ if (b->c != 2)
+ abort ();
+ if (b->d != 1)
+ abort ();
+ return 0;
+}