aboutsummaryrefslogtreecommitdiff
path: root/gcc/stmt.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2003-04-18 08:45:15 +0200
committerEric Botcazou <ebotcazou@gcc.gnu.org>2003-04-18 06:45:15 +0000
commit6a29edeae52a48b159ebe4eb024be65b8d69eb9b (patch)
treee0dee3b9bf6420657cea4b3e36c2550d4e9614f9 /gcc/stmt.c
parent06e7ca50abc3a0a39798d38672110abbd3a8dcc3 (diff)
downloadgcc-6a29edeae52a48b159ebe4eb024be65b8d69eb9b.zip
gcc-6a29edeae52a48b159ebe4eb024be65b8d69eb9b.tar.gz
gcc-6a29edeae52a48b159ebe4eb024be65b8d69eb9b.tar.bz2
re PR rtl-optimization/7675 (ICE in fixup_var_refs_1)
PR optimization/7675 * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag on VAR_DECL, PARM_DECL and FUNCTION_DECL from within nested functions if they refer to declarations from parent functions. * stmt.c (expand_decl): Don't put automatic variables in registers if the DECL_NONLOCAL flag is set. From-SVN: r65774
Diffstat (limited to 'gcc/stmt.c')
-rw-r--r--gcc/stmt.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 642a5b1..9caa5c2 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -3924,6 +3924,7 @@ expand_decl (decl)
&& !(flag_float_store
&& TREE_CODE (type) == REAL_TYPE)
&& ! TREE_THIS_VOLATILE (decl)
+ && ! DECL_NONLOCAL (decl)
&& (DECL_REGISTER (decl) || optimize))
{
/* Automatic variable that can go in a register. */