On Thu, Jan 28, 2016 at 09:51:34PM -0500, Jason Merrill wrote: > On 01/28/2016 03:15 PM, Jakub Jelinek wrote: > >+ if (TREE_CODE (decl) == FUNCTION_DECL > >+ && DECL_INITIAL (decl) == 0 > >+ && DECL_EXTERNAL (decl) > >+ && !TREE_PUBLIC (decl) > >+ && !DECL_ARTIFICIAL (decl) > >+ && !TREE_NO_WARNING (decl)) > > Do we need to check both DECL_INITIAL and DECL_EXTERNAL?
Dunno, but that is what cgraphunit.c does, c-decl.c too, what the old toplev.c (check_global_declaration_1) did (back to at least r26593 from ~ 1999), so I think we want some consistency. Either it is needed, or if it is not needed, then all the spots should change, not just this one. I can try to stick there an assert whether for FUNCTION_DECL (DECL_INITIAL (decl) == 0) == DECL_EXTERNAL (decl). Jakub