[PATCH] D86494: Work around GCC 10 not emitting base variants of structors for final classes, by avoiding referencing the symbols in question.

Richard Smith - zygoloid via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 24 16:18:31 PDT 2020


rsmith created this revision.
rsmith added a reviewer: rjmccall.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
rsmith requested review of this revision.

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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D86494

Files:
  clang/lib/CodeGen/CGClass.cpp
  clang/lib/CodeGen/CodeGenModule.h
  clang/lib/CodeGen/ItaniumCXXABI.cpp
  clang/test/CodeGenCXX/final-structor-delegation.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D86494.287517.patch
Type: text/x-patch
Size: 6815 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200824/a2316be5/attachment.bin>


More information about the cfe-commits mailing list