diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-11-13 08:16:11 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-11-13 08:16:11 +0000 |
commit | 96d5c2e21f849bf279096540d1fd768233113803 (patch) | |
tree | 37477647bbdc97991564bdf0325c20fe633a4896 /gcc/gimplify.c | |
parent | 778725bb221f705d653fb669367eeefd42445df6 (diff) | |
download | gcc-96d5c2e21f849bf279096540d1fd768233113803.tar.gz |
PR middle-end/28915
* gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
vector ctors.
* tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
vector ctors.
* expmed.c (make_tree): Handle CONST, SYMBOL_REF.
* tree.c (build_vector): Handle non-_CST elements.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118747 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 4e5d609bc59..13c5f48d112 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -3161,6 +3161,11 @@ gimplify_init_constructor (tree *expr_p, tree *pre_p, TREE_OPERAND (*expr_p, 1) = build_vector_from_ctor (type, elts); break; } + + /* Don't reduce a TREE_CONSTANT vector ctor even if we can't + make a VECTOR_CST. It won't do anything for us, and it'll + prevent us from representing it as a single constant. */ + break; } /* Vector types use CONSTRUCTOR all the way through gimple |