aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2013-05-28 15:18:55 +0200
committerMartin Jambor <jamborm@gcc.gnu.org>2013-05-28 15:18:55 +0200
commitbbba11173ac429c0506e8aece7dfa3eea42307a8 (patch)
treecff1fffd4aeaf0fff77f7e12497570d47e636383 /gcc
parent2265988cd43beaa553ac76c0ff55f3e60aeba8fb (diff)
downloadgcc-bbba11173ac429c0506e8aece7dfa3eea42307a8.zip
gcc-bbba11173ac429c0506e8aece7dfa3eea42307a8.tar.gz
gcc-bbba11173ac429c0506e8aece7dfa3eea42307a8.tar.bz2
tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs and REALPART_EXPRs have scalar type.
2013-05-28 Martin Jambor <mjambor@suse.cz> * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs and REALPART_EXPRs have scalar type. From-SVN: r199379
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-cfg.c9
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a7cc93d..6dbdf32 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-05-28 Martin Jambor <mjambor@suse.cz>
+
+ * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
+ and REALPART_EXPRs have scalar type.
+
2013-05-28 Richard Biener <rguenther@suse.de>
PR tree-optimization/57411
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index f38a32a..fe76a8c 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -2668,10 +2668,17 @@ verify_expr (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
case REALPART_EXPR:
case IMAGPART_EXPR:
+ case BIT_FIELD_REF:
+ if (!is_gimple_reg_type (TREE_TYPE (t)))
+ {
+ error ("non-scalar BIT_FIELD_REF, IMAGPART_EXPR or REALPART_EXPR");
+ return t;
+ }
+
+ /* Fall-through. */
case COMPONENT_REF:
case ARRAY_REF:
case ARRAY_RANGE_REF:
- case BIT_FIELD_REF:
case VIEW_CONVERT_EXPR:
/* We have a nest of references. Verify that each of the operands
that determine where to reference is either a constant or a variable,