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



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to