summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-01-12 15:27:43 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-01-12 15:27:43 +0000
commitc48f7341cc9aeaac4f172dfe880ea385f5833eed (patch)
tree832629f291b42e8f153e952ef7c293c7e62f5884
parent956c123ab6f129b2e10d1b10438f739e06237371 (diff)
downloadbcm5719-llvm-c48f7341cc9aeaac4f172dfe880ea385f5833eed.tar.gz
bcm5719-llvm-c48f7341cc9aeaac4f172dfe880ea385f5833eed.zip
bar
llvm-svn: 172316
-rw-r--r--clang/lib/AST/Decl.cpp3
-rw-r--r--clang/test/SemaCXX/builtins.cpp4
2 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp
index 986430595bd..2987e7c276a 100644
--- a/clang/lib/AST/Decl.cpp
+++ b/clang/lib/AST/Decl.cpp
@@ -1761,6 +1761,9 @@ bool FunctionDecl::isReservedGlobalPlacementOperator() const {
}
bool FunctionDecl::hasCLanguageLinkage() const {
+ if (getBuiltinID())
+ return true;
+
return hasCLanguageLinkageTemplate(*this);
}
diff --git a/clang/test/SemaCXX/builtins.cpp b/clang/test/SemaCXX/builtins.cpp
index 6b055cff640..5d61690c16e 100644
--- a/clang/test/SemaCXX/builtins.cpp
+++ b/clang/test/SemaCXX/builtins.cpp
@@ -20,3 +20,7 @@ template int equal<&__builtin_strcmp>(const char*, const char*); // expected-err
void f2() {
__builtin_isnan; // expected-error {{builtin functions must be directly called}}
}
+
+// pr14895
+typedef __typeof(sizeof(int)) size_t;
+extern "C" void *__builtin_alloca (size_t);
OpenPOWER on IntegriCloud