aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorMichael Matz <matz@gcc.gnu.org>2012-06-21 12:18:23 +0000
committerMichael Matz <matz@gcc.gnu.org>2012-06-21 12:18:23 +0000
commit625ed1721782f6ec522c764e0119d1ad2214f624 (patch)
treed911e332976285afd3b1d734436e05f199f03391 /gcc/testsuite
parentccd49f5a69406c97af0ad1acc417144fbc9ec5c5 (diff)
downloadgcc-625ed1721782f6ec522c764e0119d1ad2214f624.zip
gcc-625ed1721782f6ec522c764e0119d1ad2214f624.tar.gz
gcc-625ed1721782f6ec522c764e0119d1ad2214f624.tar.bz2
re PR middle-end/53688 (191.fma3d in SPEC CPU 2000 miscompiled)
PR middle-end/53688 * builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF with correct size. testsuite/ * gcc.c-torture/execute/pr53688.c: New test. From-SVN: r188852
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr53688.c32
2 files changed, 38 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 60b0828..a16c702 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-21 Michael Matz <matz@suse.de>
+
+ PR middle-end/53688
+ * gcc.c-torture/execute/pr53688.c: New test.
+
2012-06-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/30318
@@ -24,7 +29,7 @@
2012-06-16 Ville Voutilainen <ville.voutilainen@gmail.com>
- * g++.dg/cpp0x/override4.C: New.
+ * g++.dg/cpp0x/override4.C: New.
2012-06-14 Jason Merrill <jason@redhat.com>
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr53688.c b/gcc/testsuite/gcc.c-torture/execute/pr53688.c
new file mode 100644
index 0000000..c7ed4d7
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr53688.c
@@ -0,0 +1,32 @@
+char headline[256];
+struct hdr {
+ char part1[9];
+ char part2[8];
+} p;
+
+void __attribute__((noinline,noclone))
+init()
+{
+ __builtin_memcpy (p.part1, "FOOBARFOO", sizeof (p.part1));
+ __builtin_memcpy (p.part2, "SPEC CPU", sizeof (p.part2));
+}
+
+int main()
+{
+ char *x;
+ int c;
+ init();
+ __builtin_memcpy (&headline[0], p.part1, 9);
+ c = 9;
+ x = &headline[0];
+ x = x + c;
+ __builtin_memset (x, ' ', 245);
+ __builtin_memcpy (&headline[10], p.part2, 8);
+ c = 18;
+ x = &headline[0];
+ x = x + c;
+ __builtin_memset (x, ' ', 238);
+ if (headline[10] != 'S')
+ __builtin_abort ();
+ return 0;
+}