Add modref testcase
authorJan Hubicka <jh@suse.cz>
Thu, 24 Sep 2020 13:10:04 +0000 (15:10 +0200)
committerJan Hubicka <jh@suse.cz>
Thu, 24 Sep 2020 13:10:04 +0000 (15:10 +0200)
* gcc.dg/tree-ssa/modref-1.c: New test.

gcc/testsuite/gcc.dg/tree-ssa/modref-1.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.dg/tree-ssa/modref-1.c b/gcc/testsuite/gcc.dg/tree-ssa/modref-1.c
new file mode 100644 (file)
index 0000000..a80ca6b
--- /dev/null
@@ -0,0 +1,45 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized"  } */
+int p,q,r,s,*ptr=&q, *ptr2=&p;
+__attribute__ ((noinline))
+int
+test (int *p)
+{
+  *p = 1;
+}
+int
+test1()
+{
+  q = 123;
+  test(&p);
+  return q;
+}
+int
+test2()
+{
+  int *ptr = p ? &q : &s;
+  *ptr = 124;
+  test(&p);
+  return *ptr;
+}
+int
+test3()
+{
+  int *ptr = p ? &p : &s;
+  q = 125;
+  test(ptr);
+  return q;
+}
+int
+test4()
+{
+  int *ptr1 = p ? &q : &s;
+  int *ptr = p ? &r : &p;
+  *ptr1 = 126;
+  test(ptr);
+  return *ptr1;
+}
+/* { dg-final { scan-tree-dump "return 123" "optimized"} } */
+/* { dg-final { scan-tree-dump "return 124" "optimized"} } */
+/* { dg-final { scan-tree-dump "return 125" "optimized"} } */
+/* { dg-final { scan-tree-dump "return 126" "optimized"} } */