diff options
author | Richard Biener <rguenther@suse.de> | 2024-06-30 13:07:14 +0200 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2024-07-01 07:56:57 +0200 |
commit | 543a5b9da964f821b9e723ed9c93d6cdca464d47 (patch) | |
tree | 2d9529edfd1b23ddb90f314ccf0e5b9b83ce8795 /gcc/testsuite/g++.dg | |
parent | 55f80c690c5fa59836646565a9dee2a3f68374a0 (diff) | |
download | gcc-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.C | 13 |
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); +} |