aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2021-11-16 09:15:39 +0100
committerJan Hubicka <jh@suse.cz>2021-11-16 09:15:39 +0100
commite69b7c5779863469479698f863ab25e0d9b4586e (patch)
tree39a1c905620184bd8c6fd9782d0123e7c6b9acaf /gcc/testsuite
parent3200de91bc70bfd6d4b7b40e769bc82756b9b555 (diff)
downloadgcc-e69b7c5779863469479698f863ab25e0d9b4586e.zip
gcc-e69b7c5779863469479698f863ab25e0d9b4586e.tar.gz
gcc-e69b7c5779863469479698f863ab25e0d9b4586e.tar.bz2
Fix uninitialized access in merge_call_side_effects
gcc/ChangeLog: PR ipa/103262 * ipa-modref.c (merge_call_side_effects): Fix uninitialized access. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/modref-dse-5.c: New test.
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/modref-dse-5.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/modref-dse-5.c b/gcc/testsuite/gcc.dg/tree-ssa/modref-dse-5.c
new file mode 100644
index 0000000..ad35b70
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/modref-dse-5.c
@@ -0,0 +1,43 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-dse2-details" } */
+struct a {int a,b,c;};
+__attribute__ ((noinline))
+void
+kill_me (struct a *a)
+{
+ a->a=0;
+ a->b=0;
+ a->c=0;
+}
+__attribute__ ((noinline))
+int
+wrap(int b, struct a *a)
+{
+ kill_me (a);
+ return b;
+}
+__attribute__ ((noinline))
+void
+my_pleasure (struct a *a)
+{
+ a->a=1;
+ a->c=2;
+}
+__attribute__ ((noinline))
+int
+wrap2(int b, struct a *a)
+{
+ my_pleasure (a);
+ return b;
+}
+
+int
+set (struct a *a)
+{
+ wrap (0, a);
+ int ret = wrap2 (0, a);
+ //int ret = my_pleasure (a);
+ a->b=1;
+ return ret;
+}
+/* { dg-final { scan-tree-dump "Deleted dead store: wrap" "dse2" } } */