https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79176

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |jason at gcc dot gnu.org
          Component|middle-end                  |c++
           Assignee|unassigned at gcc dot gnu.org      |jason at gcc dot gnu.org

--- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #2)
> To me this sounds like a mismatch between the middle-end type_with_linkage_p
> and the C++ FE no_linkage_check.  Perhaps the former should call the latter
> using a langhook?

no_linkage_check is wrong here.

It decides that the lambda has no linkage because ~Item is !TREE_PUBLIC, so it
doesn't have "vague linkage".  ~Item is !TREE_PUBLIC because it's the
maybe-in-charge constructor which is internal to its comdat group, but it can
appear in multiple translation units so it really does have vague linkage. 
I'll fix.

Reply via email to