[Bug c++/56237] [4.6/4.7/4.8 regression] ICE in lang_* check: failed in push_local_name, at cp/decl.c:924

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Feb 7 11:11:00 GMT 2013


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |jakub at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-02-07 11:11:12 UTC ---
Created attachment 29383
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29383
gcc48-pr56237.patch

Untested fix.  For -std=c++0x and the anon union,
7839  if (cxx_dialect > cxx98
7840      && decl_linkage (decl) != lk_none
7841      && DECL_LANG_SPECIFIC (decl) == NULL
7842      && !DECL_EXTERN_C_P (decl)
7843      && no_linkage_check (TREE_TYPE (decl), /*relaxed_p=*/false))
7844    retrofit_lang_decl (decl);
creates the DECL_LANG_SPECIFIC for the first decl, but apparently
push_local_name wasn't expecting there could be other reason why
DECL_LANG_SPECIFIC could be created.



More information about the Gcc-bugs mailing list