diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-03-16 19:23:14 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-03-16 19:23:14 -0500 |
commit | 6cba9fcc2181b0a6a8c0f1dcecb87e9289516653 (patch) | |
tree | fe4133a227446b8bbf39012318fe6662e3077429 /gcc | |
parent | 0c0558276011b8b544407d3c1e1c5bbbdce0047e (diff) | |
download | gcc-6cba9fcc2181b0a6a8c0f1dcecb87e9289516653.zip gcc-6cba9fcc2181b0a6a8c0f1dcecb87e9289516653.tar.gz gcc-6cba9fcc2181b0a6a8c0f1dcecb87e9289516653.tar.bz2 |
(substitute_in_expr, case COMPONENT_REF): Ignore if inner
PLACEHOLDER_EXPR has not yet been initialized.
From-SVN: r11547
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/tree.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -1,5 +1,5 @@ /* Language-independent node constructors for parse phase of GNU compiler. - Copyright (C) 1987, 88, 92, 93, 94, 1995 Free Software Foundation, Inc. + Copyright (C) 1987, 88, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. This file is part of GNU CC. @@ -2286,6 +2286,12 @@ substitute_in_expr (exp, f, r) && TREE_OPERAND (exp, 1) == f) return r; + /* If this expression hasn't been completed let, leave it + alone. */ + if (TREE_CODE (inner) == PLACEHOLDER_EXPR + && TREE_TYPE (inner) == 0) + return exp; + new = fold (build (code, TREE_TYPE (exp), substitute_in_expr (TREE_OPERAND (exp, 0), f, r), TREE_OPERAND (exp, 1))); |