aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/decl.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/decl.c')
-rw-r--r--gcc/cp/decl.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 366d37c..b96545d 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -478,7 +478,7 @@ struct binding_level
/* The binding level currently in effect. */
#define current_binding_level \
- (cfun \
+ (cfun && cp_function_chain->bindings \
? cp_function_chain->bindings \
: scope_chain->bindings)
@@ -6306,7 +6306,6 @@ initialize_predefined_identifiers ()
{ VTABLE_PFN_NAME, &pfn_identifier, 0 },
{ "__pfn_or_delta2", &pfn_or_delta2_identifier, 0 },
{ "_vptr", &vptr_identifier, 0 },
- { "__cp_push_exception", &cp_push_exception_identifier, 0 },
{ "__vtt_parm", &vtt_parm_identifier, 0 },
{ "std", &std_identifier, 0 },
{ NULL, NULL, 0 }
@@ -13721,7 +13720,7 @@ store_parm_decls (current_function_parms)
if (flag_exceptions && !processing_template_decl
&& flag_enforce_eh_specs
&& TYPE_RAISES_EXCEPTIONS (TREE_TYPE (current_function_decl)))
- current_eh_spec_try_block = expand_start_eh_spec ();
+ current_eh_spec_block = begin_eh_spec_block ();
}
@@ -13966,9 +13965,9 @@ finish_function (flags)
if (flag_exceptions && !processing_template_decl
&& flag_enforce_eh_specs
&& TYPE_RAISES_EXCEPTIONS (TREE_TYPE (current_function_decl)))
- expand_end_eh_spec (TYPE_RAISES_EXCEPTIONS
- (TREE_TYPE (current_function_decl)),
- current_eh_spec_try_block);
+ finish_eh_spec_block (TYPE_RAISES_EXCEPTIONS
+ (TREE_TYPE (current_function_decl)),
+ current_eh_spec_block);
}
/* If we're saving up tree structure, tie off the function now. */
@@ -14395,7 +14394,7 @@ mark_lang_function (p)
ggc_mark_tree (p->x_dtor_label);
ggc_mark_tree (p->x_current_class_ptr);
ggc_mark_tree (p->x_current_class_ref);
- ggc_mark_tree (p->x_eh_spec_try_block);
+ ggc_mark_tree (p->x_eh_spec_block);
ggc_mark_tree_varray (p->x_local_names);
mark_named_label_lists (&p->x_named_labels, &p->x_named_label_uses);