aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-06-30 13:07:14 +0200
committerRichard Biener <rguenth@gcc.gnu.org>2024-07-01 07:56:57 +0200
commit543a5b9da964f821b9e723ed9c93d6cdca464d47 (patch)
tree2d9529edfd1b23ddb90f314ccf0e5b9b83ce8795 /gcc/testsuite/g++.dg
parent55f80c690c5fa59836646565a9dee2a3f68374a0 (diff)
downloadgcc-543a5b9da964f821b9e723ed9c93d6cdca464d47.zip
gcc-543a5b9da964f821b9e723ed9c93d6cdca464d47.tar.gz
gcc-543a5b9da964f821b9e723ed9c93d6cdca464d47.tar.bz2
tree-optimization/115694 - ICE with complex store rewrite
The following adds a missed check when forwprop attempts to rewrite a complex store. PR tree-optimization/115694 * tree-ssa-forwprop.cc (pass_forwprop::execute): Check the store is complex before rewriting it. * g++.dg/torture/pr115694.C: New testcase.
Diffstat (limited to 'gcc/testsuite/g++.dg')
-rw-r--r--gcc/testsuite/g++.dg/torture/pr115694.C13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/torture/pr115694.C b/gcc/testsuite/g++.dg/torture/pr115694.C
new file mode 100644
index 0000000..bbce47d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr115694.C
@@ -0,0 +1,13 @@
+// { dg-do compile }
+
+_Complex a;
+typedef struct {
+ double a[2];
+} b;
+void c(b);
+void d()
+{
+ _Complex b1 = a;
+ b t = __builtin_bit_cast (b, b1);
+ c(t);
+}