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