call.c (make_temporary_var_for_ref_to_temp): Push decl into current scope.
authorNathan Sidwell <nathan@acm.org>
Fri, 5 May 2017 16:50:14 +0000 (16:50 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Fri, 5 May 2017 16:50:14 +0000 (16:50 +0000)
* 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
gcc/cp/call.c
gcc/cp/lex.c

index 0bebb97b34df85a205a70dfa5e05600d682806a0..eaeddb2f66e82d361154057296885d84552f36c9 100644 (file)
@@ -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.
index 9401062371e1f6fcded7cbff7a928db7b400f17f..e348f296822912f7b208fbb16af7be7938a7b3fa 100644 (file)
@@ -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.  */
index 0f8a269dce4dc8aa707e837fc9ab01fe43bba002..75dc15910b09f959ffe6375b833504b8be35fe7b 100644 (file)
@@ -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);
        }
     }