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

--- Comment #7 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Paolo Carlini from comment #5)
> Thanks. Thus should we go back to the pre-r210043 behavior and somehow
> handle the case in instantiate_decl under the early:
> 
>   if (/* If there is no definition, we cannot instantiate the
>        template.  */
>       ! pattern_defined
>       /* If it's OK to postpone instantiation, do so.  */
>       || defer_ok
>       /* If this is a static data member that will be defined
>        elsewhere, we don't want to instantiate the entire data
>        member, but we do want to instantiate the initializer so that
>        we can substitute that elsewhere.  */
>       || (external_p && VAR_P (d)))
>     {
>       /* .... */
> 
> which does very few checks and then soon does goto out?

Yes, we probably want to add a deleted check to this condition.

Reply via email to