[Bug c++/28407] [4.2 regression] Issue with anonymous namespace

mmitchel at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed Jul 19 00:46:00 GMT 2006



------- Comment #8 from mmitchel at gcc dot gnu dot org  2006-07-19 00:45 -------
This is certainly a serious problem.

Right now, the C++ front end relies on TREE_PUBLIC in various places to
determine whether or not something has external linkage.  Instead, we could
compute that, by looking at the scope of the entity.  In fact, we already have
a function (decl_linkage) that computes linkage.  That function needs
adjusting, in view of Jason's change; instead of checking TREE_PUBLIC, it
should check DECL_NAMESPACE_SCOPE_P.  And, everything in the C++ front end that
cares about linkage needs to change to use DECL_EXTERNAL_LINKAGE_P, rather than
checking TREE_PUBLIC.

It looks like convert_nontype_argument already does use
DECL_EXTERNAL_LINKAGE_P.  So, this bug can probably be fixed by simply
adjusting decl_linkage as above.


-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28407



More information about the Gcc-bugs mailing list