aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2009-05-03 18:13:43 +0000
committerEli Friedman <eli.friedman@gmail.com>2009-05-03 18:13:43 +0000
commit5e222139610a9f8b2b5f4ddd112f10dec9ec1e97 (patch)
treef57f5de712af79d13f9b19b863c903a14f404932
parent31ccf377f4a676eb6c205b47eef435de616d5e2d (diff)
PR4133: fix always_inline implementation to be consistent with gcc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70786 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/CodeGenModule.cpp3
-rw-r--r--test/CodeGen/function-attributes.c3
2 files changed, 2 insertions, 4 deletions
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index 4e58d09360..8de6ef5417 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -231,8 +231,7 @@ void CodeGenModule::EmitAnnotations() {
static CodeGenModule::GVALinkage
GetLinkageForFunction(const FunctionDecl *FD, const LangOptions &Features) {
// "static" and attr(always_inline) functions get internal linkage.
- if (FD->getStorageClass() == FunctionDecl::Static ||
- FD->hasAttr<AlwaysInlineAttr>())
+ if (FD->getStorageClass() == FunctionDecl::Static)
return CodeGenModule::GVA_Internal;
if (!FD->isInline())
diff --git a/test/CodeGen/function-attributes.c b/test/CodeGen/function-attributes.c
index 3269f98a56..b1209766d8 100644
--- a/test/CodeGen/function-attributes.c
+++ b/test/CodeGen/function-attributes.c
@@ -24,8 +24,7 @@ void f6(signed short x) { }
void f7(unsigned short x) { }
-// F8 is dead so it should not be emitted.
-// RUN: not grep '@f8' %t &&
+// RUN: grep 'define void @f8() nounwind alwaysinline' %t &&
void __attribute__((always_inline)) f8(void) { }
// RUN: grep 'call void @f9_t() noreturn' %t &&