diff options
author | Steven Bosscher <stevenb@suse.de> | 2005-09-29 12:25:10 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2005-09-29 12:25:10 +0000 |
commit | 1ebd8d9ac1a51af9a1a65f1db575fd2499835074 (patch) | |
tree | bb658ab7113eb0a075f5c79afff242ff5018b2f5 /gcc/tree-ssa-ccp.c | |
parent | 577b2a064ee8634cd57b36cecddb4e9e2a57e51c (diff) | |
download | gcc-1ebd8d9ac1a51af9a1a65f1db575fd2499835074.zip gcc-1ebd8d9ac1a51af9a1a65f1db575fd2499835074.tar.gz gcc-1ebd8d9ac1a51af9a1a65f1db575fd2499835074.tar.bz2 |
re PR tree-optimization/23911 (Failure to propagate constants from a const initializer for _Complex)
gcc/
PR tree-optimization/23911
* tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
and IMAGPART_EXPR too.
testsuite/
* gcc.dg/pr23911.c: New test.
From-SVN: r104771
Diffstat (limited to 'gcc/tree-ssa-ccp.c')
-rw-r--r-- | gcc/tree-ssa-ccp.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index 1ff1528..43b8129 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -1045,6 +1045,15 @@ fold_const_aggregate_ref (tree t) return cval; break; + case REALPART_EXPR: + case IMAGPART_EXPR: + { + tree c = fold_const_aggregate_ref (TREE_OPERAND (t, 0)); + if (c && TREE_CODE (c) == COMPLEX_CST) + return fold_build1 (TREE_CODE (t), TREE_TYPE (t), c); + break; + } + default: break; } |