re PR tree-optimization/51759 (miscompile writes past end of bitfield)
authorMartin Jambor <mjambor@suse.cz>
Mon, 9 Jan 2012 19:52:06 +0000 (20:52 +0100)
committerMartin Jambor <jamborm@gcc.gnu.org>
Mon, 9 Jan 2012 19:52:06 +0000 (20:52 +0100)
2012-01-09  Martin Jambor  <mjambor@suse.cz>

        PR tree-optimization/51759
* g++.dg/ipa/pr51759.C: New test.

From-SVN: r183029

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ipa/pr51759.C [new file with mode: 0644]

index 565aec5..8b2f465 100644 (file)
@@ -1,3 +1,8 @@
+2012-01-09  Martin Jambor  <mjambor@suse.cz>
+
+        PR tree-optimization/51759
+       * g++.dg/ipa/pr51759.C: New test.
+
 2012-01-09  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/51758
diff --git a/gcc/testsuite/g++.dg/ipa/pr51759.C b/gcc/testsuite/g++.dg/ipa/pr51759.C
new file mode 100644 (file)
index 0000000..accfaf2
--- /dev/null
@@ -0,0 +1,26 @@
+/* { dg-do run } */
+/* { dg-options "-O2"  } */
+
+extern "C" void abort (void);
+struct S
+{
+  void __attribute__((noinline)) set(unsigned val)
+    {
+      data = val;
+      if (data != val)
+        abort ();
+    }
+  int pad0;
+  unsigned pad1 : 8;
+  unsigned data : 24;
+  int pad2;
+};
+int main()
+{
+  S s;
+  s.pad2 = -1;
+  s.set(0);
+  if (s.pad2 != -1)
+    abort ();
+}
+