summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseDecl.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-06-14 03:20:28 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-06-14 03:20:28 +0000
commit15b311c75244afa19d0cfd4057b397e5829ebad4 (patch)
treed5697f24d29422fe1c9ed40e6115d94da99001ec /clang/lib/Parse/ParseDecl.cpp
parent34d9707825a13572e7dd5f7855e0d92b9134d27e (diff)
downloadbcm5719-llvm-15b311c75244afa19d0cfd4057b397e5829ebad4.tar.gz
bcm5719-llvm-15b311c75244afa19d0cfd4057b397e5829ebad4.zip
[Parser] Handle __pragma(pack, etc. after type definitions
Support certain MS pragmas right after the closing curly brace of a class. Clang did not expect __pragma in this position. This fixes PR28094. llvm-svn: 272628
Diffstat (limited to 'clang/lib/Parse/ParseDecl.cpp')
-rw-r--r--clang/lib/Parse/ParseDecl.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp
index 746f996d368..be694901b91 100644
--- a/clang/lib/Parse/ParseDecl.cpp
+++ b/clang/lib/Parse/ParseDecl.cpp
@@ -3453,6 +3453,22 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,
ParseDecltypeSpecifier(DS);
continue;
+ case tok::annot_pragma_pack:
+ HandlePragmaPack();
+ continue;
+
+ case tok::annot_pragma_ms_pragma:
+ HandlePragmaMSPragma();
+ continue;
+
+ case tok::annot_pragma_ms_vtordisp:
+ HandlePragmaMSVtorDisp();
+ continue;
+
+ case tok::annot_pragma_ms_pointers_to_members:
+ HandlePragmaMSPointersToMembers();
+ continue;
+
case tok::kw___underlying_type:
ParseUnderlyingTypeSpecifier(DS);
continue;
OpenPOWER on IntegriCloud