diff options
author | steven <steven@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-29 12:25:10 +0000 |
---|---|---|
committer | steven <steven@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-09-29 12:25:10 +0000 |
commit | 908cb59d263cca413d6a47836cee043d3b3b9ece (patch) | |
tree | bb658ab7113eb0a075f5c79afff242ff5018b2f5 /gcc/tree-ssa-ccp.c | |
parent | 19e4a816898df7c2152b9a14ff4d99e6881961d5 (diff) | |
download | gcc-908cb59d263cca413d6a47836cee043d3b3b9ece.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104771 138bc75d-0d04-0410-961f-82ee72b054a4
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 1ff15287345..43b8129109b 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; } |