[PATCH] D24682: [PR30341] Alias must point to a definition
Richard Smith via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 28 10:56:15 PDT 2016
rsmith added inline comments.
================
Comment at: clang/lib/CodeGen/CGCXX.cpp:170
@@ -170,3 +169,3 @@
// If we have a weak, non-discardable alias (weak, weak_odr), like an extern
// template instantiation or a dllexported class, avoid forming it on COFF.
----------------
We can now only reach this code for the case where `TargetLinkage != llvm::GlobalValue::AvailableExternallyLinkage`. Substituting `true` for that expression here gives
if (llvm::GlobalValue::isDiscardableIfUnused(Linkage) &&
(true || !TargetDecl.getDecl()->hasAttr<AlwaysInlineAttr>())) {
which simplifies to
if (llvm::GlobalValue::isDiscardableIfUnused(Linkage)) {
not
if (llvm::GlobalValue::isDiscardableIfUnused(Linkage) &&
!TargetDecl.getDecl()->hasAttr<AlwaysInlineAttr>()) {
We used to enter this case for a function that is discardable if unused, not available externally, and always inline (that is, a normal inline+always_inline function). With this change, we don't do so any more.
https://reviews.llvm.org/D24682
More information about the cfe-commits
mailing list