This is an archive of the discontinued LLVM Phabricator instance.

PR43079: Work around GCC 10 not emitting base variants of structors for final classes, by avoiding referencing the symbols in question.
Needs ReviewPublic

Authored by rsmith on Aug 24 2020, 4:18 PM.

Details

Reviewers
rjmccall
Summary

As far as I can determine, the only case we need to be careful about is
when we would generate a reference to the symbol and not emit any
corresponding definition, and that only happens when generating an
available_externally body of the corresponding complete structor
variant. Disable all complete -> base forwarding in that case for
structors of final classes.

See https://github.com/itanium-cxx-abi/cxx-abi/issues/104 for more
background.

Diff Detail

Event Timeline

rsmith created this revision.Aug 24 2020, 4:18 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 24 2020, 4:18 PM
Herald added a subscriber: cfe-commits. · View Herald Transcript
rsmith requested review of this revision.Aug 24 2020, 4:18 PM
rsmith retitled this revision from Work around GCC 10 not emitting base variants of structors for final classes, by avoiding referencing the symbols in question. to PR43079: Work around GCC 10 not emitting base variants of structors for final classes, by avoiding referencing the symbols in question..Aug 24 2020, 4:20 PM