diff options
author | Jason Merrill <jason@redhat.com> | 2006-11-13 03:16:11 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2006-11-13 03:16:11 -0500 |
commit | 84816907e4bda26eb7a21a5d3d52eb876fcd91dd (patch) | |
tree | 37477647bbdc97991564bdf0325c20fe633a4896 /gcc/tree-cfg.c | |
parent | 329b3cc384733e2f4df34f31b32600787398c798 (diff) | |
download | gcc-84816907e4bda26eb7a21a5d3d52eb876fcd91dd.zip gcc-84816907e4bda26eb7a21a5d3d52eb876fcd91dd.tar.gz gcc-84816907e4bda26eb7a21a5d3d52eb876fcd91dd.tar.bz2 |
re PR middle-end/28915 (ICE: tree check: expected class 'constant', have 'declaration' (var_decl) in build_vector, at tree.c:973)
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.
Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
From-SVN: r118747
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 7c397aaa8..fc30f22 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -3420,6 +3420,11 @@ verify_expr (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED) CHECK_OP (1, "invalid operand to binary operator"); break; + case CONSTRUCTOR: + if (TREE_CONSTANT (t) && TREE_CODE (TREE_TYPE (t)) == VECTOR_TYPE) + *walk_subtrees = 0; + break; + default: break; } |