aboutsummaryrefslogtreecommitdiff
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
commit47f5209a80c7c75592e87eb296d2b51e03208ae0 (patch)
tree1eb9b9e7a86af61b68996bd1b2e71be63fdea958
parentb8006e50bf378ddbab9601c1fa07f151ac538ff3 (diff)
Another tweak to handle the MS extensions (<rdar://problem/5956221>).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61821 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Parse/ParseDecl.cpp1
-rw-r--r--lib/Parse/ParseTentative.cpp1
-rw-r--r--test/Parser/MicrosoftExtensions.c5
3 files changed, 7 insertions, 0 deletions
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp
index 3b65ee0ba7..c4126f3bb4 100644
--- a/lib/Parse/ParseDecl.cpp
+++ b/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/lib/Parse/ParseTentative.cpp b/lib/Parse/ParseTentative.cpp
index 11df2f45ce..a7c3e38931 100644
--- a/lib/Parse/ParseTentative.cpp
+++ b/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/test/Parser/MicrosoftExtensions.c b/test/Parser/MicrosoftExtensions.c
index 6b097ab7a8..beeef0a9f5 100644
--- a/test/Parser/MicrosoftExtensions.c
+++ b/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);
+}