From ea8daa3ba3b801c45e4386b8b9477d065075c5d7 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Fri, 8 Oct 1993 12:20:44 +0000 Subject: (initdcl, notype_initdcl): Call push_momentary and pop_momentary here. (init): Not here. From-SVN: r5679 --- gcc/c-parse.in | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'gcc') diff --git a/gcc/c-parse.in b/gcc/c-parse.in index 04879dc..87b7951 100644 --- a/gcc/c-parse.in +++ b/gcc/c-parse.in @@ -1019,12 +1019,16 @@ maybeasm: initdcl: declarator maybeasm maybe_attribute '=' { $$ = start_decl ($1, current_declspecs, 1); - start_init ($$, $2, global_bindings_p ()); } + start_init ($$, $2, global_bindings_p ()); + /* Note that the call to clear_momentary + is in process_init_element. */ + push_momentary (); } init /* Note how the declaration of the variable is in effect while its init is parsed! */ { finish_init (); decl_attributes ($5, $3); - finish_decl ($5, $6, $2); } + finish_decl ($5, $6, $2); + pop_momentary (); } | declarator maybeasm maybe_attribute { tree d = start_decl ($1, current_declspecs, 0); decl_attributes (d, $3); @@ -1034,12 +1038,17 @@ initdcl: notype_initdcl: notype_declarator maybeasm maybe_attribute '=' { $$ = start_decl ($1, current_declspecs, 1); - start_init ($$, $2, global_bindings_p ()); } + start_init ($$, $2, global_bindings_p ()); + /* Note that the call to clear_momentary + is in process_init_element. */ + push_momentary (); } init /* Note how the declaration of the variable is in effect while its init is parsed! */ { finish_init (); decl_attributes ($5, $3); - finish_decl ($5, $6, $2); } + finish_decl ($5, $6, $2); + pop_momentary (); } + | notype_declarator maybeasm maybe_attribute { tree d = start_decl ($1, current_declspecs, 0); decl_attributes (d, $3); @@ -1113,17 +1122,11 @@ attrib init: expr_no_commas | '{' - { really_start_incremental_init (NULL_TREE); - /* Note that the call to clear_momentary - is in process_init_element. */ - push_momentary (); } + { really_start_incremental_init (NULL_TREE); } initlist_maybe_comma '}' - { $$ = pop_init_level (0); - pop_momentary (); } - + { $$ = pop_init_level (0); } | error - { $$ = error_mark_node; - pop_momentary (); } + { $$ = error_mark_node; } ; /* `initlist_maybe_comma' is the guts of an initializer in braces. */ -- cgit v1.1