aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <merrill@gnu.org>1994-10-05 23:08:12 +0000
committerJason Merrill <merrill@gnu.org>1994-10-05 23:08:12 +0000
commit3ac4f0e6d01988a06968fbf268f6f7a00bafb672 (patch)
treedf70924fcb0a94da0b09ce1c6574a887393cae71
parentc399861d39d9ff39e9a088ff8ad9bce02be48aa9 (diff)
downloadgcc-3ac4f0e6d01988a06968fbf268f6f7a00bafb672.zip
gcc-3ac4f0e6d01988a06968fbf268f6f7a00bafb672.tar.gz
gcc-3ac4f0e6d01988a06968fbf268f6f7a00bafb672.tar.bz2
(fold, COMPONENT_REF): Don't die if the CONSTRUCTOR
doesn't initialize the field we want. From-SVN: r8223
-rw-r--r--gcc/fold-const.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index e93516e..50217a0 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -3424,7 +3424,11 @@ fold (expr)
case COMPONENT_REF:
if (TREE_CODE (arg0) == CONSTRUCTOR)
- t = TREE_VALUE (purpose_member (arg1, CONSTRUCTOR_ELTS (arg0)));
+ {
+ tree m = purpose_member (arg1, CONSTRUCTOR_ELTS (arg0));
+ if (m)
+ t = TREE_VALUE (m);
+ }
return t;
case RANGE_EXPR: