summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Naroff <snaroff@apple.com>2009-01-06 19:34:12 +0000
committerSteve Naroff <snaroff@apple.com>2009-01-06 19:34:12 +0000
commitf192fabbdc3b2998a263d638a5ea7eaf613778b7 (patch)
treeff94116c86e36b66bb993cf6c2d76a791c666867
parent016056cfde1e13681e359f99572ccd51dc183438 (diff)
downloadbcm5719-llvm-f192fabbdc3b2998a263d638a5ea7eaf613778b7.tar.gz
bcm5719-llvm-f192fabbdc3b2998a263d638a5ea7eaf613778b7.zip
Another tweak to handle the MS extensions (<rdar://problem/5956221>).
llvm-svn: 61821
-rw-r--r--clang/lib/Parse/ParseDecl.cpp1
-rw-r--r--clang/lib/Parse/ParseTentative.cpp1
-rw-r--r--clang/test/Parser/MicrosoftExtensions.c5
3 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp
index 3b65ee0ba78..c4126f3bb46 100644
--- a/clang/lib/Parse/ParseDecl.cpp
+++ b/clang/lib/Parse/ParseDecl.cpp
@@ -1353,6 +1353,7 @@ bool Parser::isDeclarationSpecifier() {
case tok::less:
return getLang().ObjC1;
+ case tok::kw___declspec:
case tok::kw___cdecl:
case tok::kw___stdcall:
case tok::kw___fastcall:
diff --git a/clang/lib/Parse/ParseTentative.cpp b/clang/lib/Parse/ParseTentative.cpp
index 11df2f45cea..a7c3e389319 100644
--- a/clang/lib/Parse/ParseTentative.cpp
+++ b/clang/lib/Parse/ParseTentative.cpp
@@ -626,6 +626,7 @@ Parser::TPResult Parser::isCXXDeclarationSpecifier() {
return TPResult::True();
// Microsoft
+ case tok::kw___declspec:
case tok::kw___cdecl:
case tok::kw___stdcall:
case tok::kw___fastcall:
diff --git a/clang/test/Parser/MicrosoftExtensions.c b/clang/test/Parser/MicrosoftExtensions.c
index 6b097ab7a8d..beeef0a9f55 100644
--- a/clang/test/Parser/MicrosoftExtensions.c
+++ b/clang/test/Parser/MicrosoftExtensions.c
@@ -21,3 +21,8 @@ __forceinline InterlockedBitTestAndSet (long *Base, long Bit)
};
}
+void *_alloca(int);
+
+void foo() {
+ __declspec(align(16)) int *buffer = (int *)_alloca(9);
+}
OpenPOWER on IntegriCloud