summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-07-15 22:58:18 +0000
committerDouglas Gregor <dgregor@apple.com>2010-07-15 22:58:18 +0000
commit8997690ff1070e9ab4f9b7bf57f5ba45763a796c (patch)
tree8d27f0f367d93aaf4c2c75cbfb86b69261af09c1 /clang/lib/CodeGen/CodeGenModule.cpp
parentb3026df9fac64fdfdeb147e077ad893b763e1e3b (diff)
downloadbcm5719-llvm-8997690ff1070e9ab4f9b7bf57f5ba45763a796c.tar.gz
bcm5719-llvm-8997690ff1070e9ab4f9b7bf57f5ba45763a796c.zip
Don't suppress the emission of available_externally functions marked
with always_inline attribute. Thanks to Howard for the tip. llvm-svn: 108469
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index bf606a61658..834f981a528 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -816,7 +816,8 @@ void CodeGenModule::EmitGlobalDefinition(GlobalDecl GD) {
if (const FunctionDecl *Function = dyn_cast<FunctionDecl>(D)) {
// At -O0, don't generate IR for functions with available_externally
// linkage.
- if (CodeGenOpts.OptimizationLevel == 0 &&
+ if (CodeGenOpts.OptimizationLevel == 0 &&
+ !Function->hasAttr<AlwaysInlineAttr>() &&
getFunctionLinkage(Function)
== llvm::Function::AvailableExternallyLinkage)
return;
OpenPOWER on IntegriCloud