diff options
Diffstat (limited to 'clang/lib/Parse/ParseDecl.cpp')
-rw-r--r-- | clang/lib/Parse/ParseDecl.cpp | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index 404f0a592a3..6b7ffb64fae 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -609,6 +609,7 @@ void Parser::ParseMicrosoftTypeAttributes(ParsedAttributes &attrs) { case tok::kw___ptr64: case tok::kw___w64: case tok::kw___ptr32: + case tok::kw___unaligned: case tok::kw___sptr: case tok::kw___uptr: { IdentifierInfo *AttrName = Tok.getIdentifierInfo(); @@ -3086,11 +3087,6 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS, break; } - case tok::kw___unaligned: - isInvalid = DS.SetTypeQual(DeclSpec::TQ_unaligned, Loc, PrevSpec, DiagID, - getLangOpts()); - break; - case tok::kw___sptr: case tok::kw___uptr: case tok::kw___ptr64: @@ -3101,6 +3097,7 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS, case tok::kw___fastcall: case tok::kw___thiscall: case tok::kw___vectorcall: + case tok::kw___unaligned: ParseMicrosoftTypeAttributes(DS.getAttributes()); continue; @@ -4794,10 +4791,6 @@ void Parser::ParseTypeQualifierListOpt(DeclSpec &DS, unsigned AttrReqs, ParseOpenCLQualifiers(DS.getAttributes()); break; - case tok::kw___unaligned: - isInvalid = DS.SetTypeQual(DeclSpec::TQ_unaligned, Loc, PrevSpec, DiagID, - getLangOpts()); - break; case tok::kw___uptr: // GNU libc headers in C mode use '__uptr' as an identifer which conflicts // with the MS modifier keyword. @@ -4815,6 +4808,7 @@ void Parser::ParseTypeQualifierListOpt(DeclSpec &DS, unsigned AttrReqs, case tok::kw___fastcall: case tok::kw___thiscall: case tok::kw___vectorcall: + case tok::kw___unaligned: if (AttrReqs & AR_DeclspecAttributesParsed) { ParseMicrosoftTypeAttributes(DS.getAttributes()); continue; @@ -5037,8 +5031,7 @@ void Parser::ParseDeclaratorInternal(Declarator &D, DS.getConstSpecLoc(), DS.getVolatileSpecLoc(), DS.getRestrictSpecLoc(), - DS.getAtomicSpecLoc(), - DS.getUnalignedSpecLoc()), + DS.getAtomicSpecLoc()), DS.getAttributes(), SourceLocation()); else |