aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2017-05-05 16:50:14 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2017-05-05 16:50:14 +0000
commit77fa3ec1b25e4f66ea87b3049c91c7249c1ec92c (patch)
tree7b7ae97564417221279c14dffcde2b45b956f0d1
parent7187a6c83a466b582c68b60c33113492ce9ee1e9 (diff)
downloadgcc-77fa3ec1b25e4f66ea87b3049c91c7249c1ec92c.zip
gcc-77fa3ec1b25e4f66ea87b3049c91c7249c1ec92c.tar.gz
gcc-77fa3ec1b25e4f66ea87b3049c91c7249c1ec92c.tar.bz2
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
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/call.c12
-rw-r--r--gcc/cp/lex.c10
3 files changed, 12 insertions, 14 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 0bebb97..eaeddb2 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,9 @@
2017-05-05 Nathan Sidwell <nathan@acm.org>
+ * 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 9401062..e348f29 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 0f8a269..75dc159 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);
}
}