From 77fa3ec1b25e4f66ea87b3049c91c7249c1ec92c Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Fri, 5 May 2017 16:50:14 +0000 Subject: [PATCH] call.c (make_temporary_var_for_ref_to_temp): Push decl into current scope. * call.c (make_temporary_var_for_ref_to_temp): Push decl into current scope. * lex.c (unqualified_name_lookup_error): Likewise. From-SVN: r247645 --- gcc/cp/ChangeLog | 4 ++++ gcc/cp/call.c | 12 +++++------- gcc/cp/lex.c | 10 +++------- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 0bebb97b34d..eaeddb2f66e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2017-05-05 Nathan Sidwell + * call.c (make_temporary_var_for_ref_to_temp): Push decl into + current scope. + * lex.c (unqualified_name_lookup_error): Likewise. + * class.c (alter_class): Use retrofit_lang_decl directly. * decl.c (push_local_name, dupliate_decls): Likewise. * semantics.c (omp_privatize_field): Likewise. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 9401062371e..e348f296822 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -10234,10 +10234,7 @@ perform_direct_initialization_if_possible (tree type, tree make_temporary_var_for_ref_to_temp (tree decl, tree type) { - tree var; - - /* Create the variable. */ - var = create_temporary_var (type); + tree var = create_temporary_var (type); /* Register the variable. */ if (VAR_P (decl) @@ -10245,15 +10242,16 @@ make_temporary_var_for_ref_to_temp (tree decl, tree type) { /* Namespace-scope or local static; give it a mangled name. */ /* FIXME share comdat with decl? */ - tree name; TREE_STATIC (var) = TREE_STATIC (decl); CP_DECL_THREAD_LOCAL_P (var) = CP_DECL_THREAD_LOCAL_P (decl); set_decl_tls_model (var, DECL_TLS_MODEL (decl)); - name = mangle_ref_init_variable (decl); + + tree name = mangle_ref_init_variable (decl); DECL_NAME (var) = name; SET_DECL_ASSEMBLER_NAME (var, name); - var = pushdecl_top_level (var); + + var = pushdecl (var); } else /* Create a new cleanup level if necessary. */ diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index 0f8a269dce4..75dc15910b0 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -447,13 +447,9 @@ unqualified_name_lookup_error (tree name, location_t loc) this NAME in the innermost block scope. */ if (local_bindings_p ()) { - tree decl; - decl = build_decl (loc, VAR_DECL, name, error_mark_node); - DECL_CONTEXT (decl) = current_function_decl; - push_local_binding (name, decl, 0); - /* Mark the variable as used so that we do not get warnings - about it being unused later. */ - TREE_USED (decl) = 1; + tree decl = build_decl (loc, VAR_DECL, name, error_mark_node); + TREE_USED (decl) = true; + pushdecl (decl); } } -- 2.30.2