[C++ PATCH] set_global_binding tweak

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00592.html
	* name-lookup.c (set_global_binding): Don't deal with STAT_HACK.

From-SVN: r253587
This commit is contained in:
Nathan Sidwell 2017-10-10 14:48:34 +00:00 committed by Nathan Sidwell
parent 2fe1a1b888
commit a6a5091a56
2 changed files with 10 additions and 15 deletions

View file

@ -1,3 +1,7 @@
2017-10-10 Nathan Sidwell <nathan@acm.org>
* name-lookup.c (set_global_binding): Don't deal with STAT_HACK.
2017-10-06 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/47791

View file

@ -4858,22 +4858,13 @@ set_global_binding (tree decl)
bool subtime = timevar_cond_start (TV_NAME_LOOKUP);
tree *slot = find_namespace_slot (global_namespace, DECL_NAME (decl), true);
tree old = MAYBE_STAT_DECL (*slot);
if (!old)
*slot = decl;
else if (old == decl)
;
else if (!STAT_HACK_P (*slot)
&& TREE_CODE (decl) == TYPE_DECL && DECL_ARTIFICIAL (decl))
*slot = stat_hack (old, decl);
else if (!STAT_HACK_P (*slot)
&& TREE_CODE (old) == TYPE_DECL && DECL_ARTIFICIAL (old))
*slot = stat_hack (decl, old);
else
/* The user's placed something in the implementor's
namespace. */
diagnose_name_conflict (decl, old);
if (*slot)
/* The user's placed something in the implementor's namespace. */
diagnose_name_conflict (decl, MAYBE_STAT_DECL (*slot));
/* Force the binding, so compiler internals continue to work. */
*slot = decl;
timevar_cond_stop (TV_NAME_LOOKUP, subtime);
}