diff options
author | Francois Pichet <pichet2000@gmail.com> | 2011-08-25 00:36:46 +0000 |
---|---|---|
committer | Francois Pichet <pichet2000@gmail.com> | 2011-08-25 00:36:46 +0000 |
commit | f2fb411d4a504e2e34e1f0858edcb89dbb200529 (patch) | |
tree | 34485df2980f8e4a0a38229ae9827e04aac9cfa5 /clang/lib/Parse/ParseDecl.cpp | |
parent | 4ba0ba42e2fe2f0b2458e0fcbf4f68766e513dec (diff) | |
download | bcm5719-llvm-f2fb411d4a504e2e34e1f0858edcb89dbb200529.tar.gz bcm5719-llvm-f2fb411d4a504e2e34e1f0858edcb89dbb200529.zip |
Add support for Microsoft __ptr32 keyword.
Patch by Chris Cudmore!
llvm-svn: 138533
Diffstat (limited to 'clang/lib/Parse/ParseDecl.cpp')
-rw-r--r-- | clang/lib/Parse/ParseDecl.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index 2316590afe6..9e2fb259476 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -303,10 +303,12 @@ void Parser::ParseMicrosoftTypeAttributes(ParsedAttributes &attrs) { while (Tok.is(tok::kw___fastcall) || Tok.is(tok::kw___stdcall) || Tok.is(tok::kw___thiscall) || Tok.is(tok::kw___cdecl) || Tok.is(tok::kw___ptr64) || Tok.is(tok::kw___w64) || + Tok.is(tok::kw___ptr32) || Tok.is(tok::kw___unaligned)) { IdentifierInfo *AttrName = Tok.getIdentifierInfo(); SourceLocation AttrNameLoc = ConsumeToken(); - if (Tok.is(tok::kw___ptr64) || Tok.is(tok::kw___w64)) + if (Tok.is(tok::kw___ptr64) || Tok.is(tok::kw___w64) || + Tok.is(tok::kw___ptr32)) // FIXME: Support these properly! continue; attrs.addNew(AttrName, AttrNameLoc, 0, AttrNameLoc, 0, @@ -1722,6 +1724,7 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS, break; case tok::kw___ptr64: + case tok::kw___ptr32: case tok::kw___w64: case tok::kw___cdecl: case tok::kw___stdcall: @@ -2271,6 +2274,7 @@ bool Parser::ParseOptionalTypeSpecifier(DeclSpec &DS, bool& isInvalid, break; case tok::kw___ptr64: + case tok::kw___ptr32: case tok::kw___w64: case tok::kw___cdecl: case tok::kw___stdcall: @@ -2985,6 +2989,7 @@ bool Parser::isTypeSpecifierQualifier() { case tok::kw___thiscall: case tok::kw___w64: case tok::kw___ptr64: + case tok::kw___ptr32: case tok::kw___pascal: case tok::kw___unaligned: @@ -3132,6 +3137,7 @@ bool Parser::isDeclarationSpecifier(bool DisambiguatingWithExpression) { case tok::kw___thiscall: case tok::kw___w64: case tok::kw___ptr64: + case tok::kw___ptr32: case tok::kw___forceinline: case tok::kw___pascal: case tok::kw___unaligned: @@ -3266,6 +3272,7 @@ void Parser::ParseTypeQualifierListOpt(DeclSpec &DS, case tok::kw___w64: case tok::kw___ptr64: + case tok::kw___ptr32: case tok::kw___cdecl: case tok::kw___stdcall: case tok::kw___fastcall: @@ -3684,7 +3691,7 @@ void Parser::ParseParenDeclarator(Declarator &D) { if (Tok.is(tok::kw___cdecl) || Tok.is(tok::kw___stdcall) || Tok.is(tok::kw___thiscall) || Tok.is(tok::kw___fastcall) || Tok.is(tok::kw___w64) || Tok.is(tok::kw___ptr64) || - Tok.is(tok::kw___unaligned)) { + Tok.is(tok::kw___ptr32) || Tok.is(tok::kw___unaligned)) { ParseMicrosoftTypeAttributes(attrs); } // Eat any Borland extensions. |