[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:
parent
2fe1a1b888
commit
a6a5091a56
2 changed files with 10 additions and 15 deletions
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue