aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Reichelt <reichelt@igpm.rwth-aachen.de>2004-07-16 00:25:59 +0000
committerVolker Reichelt <reichelt@gcc.gnu.org>2004-07-16 00:25:59 +0000
commita916927fb5f966bf29dd99e44e195c7d0b3c028b (patch)
tree01f6f3abe9670b6e62ada5992e43d60179e9a9ec
parent1373fd361f46c803f063bdbbf206d7e224e3843a (diff)
downloadgcc-a916927fb5f966bf29dd99e44e195c7d0b3c028b.zip
gcc-a916927fb5f966bf29dd99e44e195c7d0b3c028b.tar.gz
gcc-a916927fb5f966bf29dd99e44e195c7d0b3c028b.tar.bz2
re PR rtl-optimization/16536 (Incorrect __restrict__ optimization in -O2)
PR rtl-optimization/16536 * gcc.c-torture/execute/restrict-1.c: New test. From-SVN: r84791
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/restrict-1.c30
2 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8626dbb8..1f51638 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR rtl-optimization/16536
+ * gcc.c-torture/execute/restrict-1.c: New test.
+
2004-07-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/15324
diff --git a/gcc/testsuite/gcc.c-torture/execute/restrict-1.c b/gcc/testsuite/gcc.c-torture/execute/restrict-1.c
new file mode 100644
index 0000000..3c5696c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/restrict-1.c
@@ -0,0 +1,30 @@
+/* PR rtl-optimization/16536
+ Origin: Jeremy Denise <jeremy.denise@libertysurf.fr>
+ Reduced: Wolfgang Bangerth <bangerth@dealii.org>
+ Volker Reichelt <reichelt@igpm.rwth-aachen.de> */
+
+extern void abort ();
+
+typedef struct
+{
+ int i, dummy;
+} A;
+
+inline A foo (const A* p, const A* q)
+{
+ return (A){p->i+q->i};
+}
+
+void bar (A* __restrict__ p)
+{
+ *p=foo(p,p);
+ if (p->i!=2)
+ abort();
+}
+
+int main ()
+{
+ A a={1};
+ bar(&a);
+ return 0;
+}