http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57848
--- Comment #15 from Dongsheng Song <dongsheng.song at gmail dot com> --- Yes,it helps, 64 bit gcc 4.9 build fine. but 32 bit failed with lots of 'conflicting types' errors, this maybe another story. $ svn info mingw-w64/trunk/ Path: mingw-w64/trunk URL: svn://svn.code.sf.net/p/mingw-w64/code/trunk Repository Root: svn://svn.code.sf.net/p/mingw-w64/code Repository UUID: 4407c894-4637-0410-b4f5-ada5f102cad1 Revision: 6277 Node Kind: directory Schedule: normal Last Changed Author: snarfle Last Changed Rev: 6277 Last Changed Date: 2013-09-12 03:13:55 +0800 (Thu, 12 Sep 2013) $ svn info gcc/trunk/ Path: gcc/trunk URL: svn://gcc.gnu.org/svn/gcc/trunk Repository Root: svn://gcc.gnu.org/svn/gcc Repository UUID: 138bc75d-0d04-0410-961f-82ee72b054a4 Revision: 202515 Node Kind: directory Schedule: normal Last Changed Author: amodra Last Changed Rev: 202515 Last Changed Date: 2013-09-12 10:47:05 +0800 (Thu, 12 Sep 2013) $ svn diff gcc/trunk/gcc/c/c-decl.c Index: gcc/trunk/gcc/c/c-decl.c =================================================================== --- gcc/trunk/gcc/c/c-decl.c (revision 202515) +++ gcc/trunk/gcc/c/c-decl.c (working copy) @@ -3604,7 +3604,7 @@ C_DECL_BUILTIN_PROTOTYPE (decl) = prototype_p (type); /* Should never be called on a symbol with a preexisting meaning. */ - gcc_assert (!I_SYMBOL_BINDING (id)); + gcc_assert (TREE_CODE (decl) == CONST_DECL || !I_SYMBOL_BINDING (id)); bind (id, decl, external_scope, /*invisible=*/true, /*nested=*/false, UNKNOWN_LOCATION); @@ -3629,9 +3629,6 @@ const char *name = IDENTIFIER_POINTER (id); C_DECL_BUILTIN_PROTOTYPE (decl) = prototype_p (type); - /* Should never be called on a symbol with a preexisting meaning. */ - gcc_assert (!I_SYMBOL_BINDING (id)); - bind (id, decl, external_scope, /*invisible=*/false, /*nested=*/false, UNKNOWN_LOCATION);