diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-02-04 08:22:46 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-02-04 08:22:46 +0000 |
commit | bda8632f9b51b0958b242ba1b2f161cf7470d461 (patch) | |
tree | aee7c30ab3135544794a98c88a9ad17e0ee64037 /clang | |
parent | 631a90b6bc1d8526d463660934dedf21c1904e5f (diff) | |
download | bcm5719-llvm-bda8632f9b51b0958b242ba1b2f161cf7470d461.tar.gz bcm5719-llvm-bda8632f9b51b0958b242ba1b2f161cf7470d461.zip |
Parse: Handle __declspec in a lambda definition
llvm-svn: 228121
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Parse/ParseExprCXX.cpp | 5 | ||||
-rw-r--r-- | clang/test/SemaCXX/ms-novtable.cpp | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseExprCXX.cpp b/clang/lib/Parse/ParseExprCXX.cpp index 10ae450fe89..445967bfab8 100644 --- a/clang/lib/Parse/ParseExprCXX.cpp +++ b/clang/lib/Parse/ParseExprCXX.cpp @@ -1085,6 +1085,11 @@ ExprResult Parser::ParseLambdaExpressionAfterIntroducer( // compatible with GCC. MaybeParseGNUAttributes(Attr, &DeclEndLoc); + // MSVC-style attributes must be parsed before the mutable specifier to be + // compatible with MSVC. + while (Tok.is(tok::kw___declspec)) + ParseMicrosoftDeclSpec(Attr); + // Parse 'mutable'[opt]. SourceLocation MutableLoc; if (TryConsumeToken(tok::kw_mutable, MutableLoc)) diff --git a/clang/test/SemaCXX/ms-novtable.cpp b/clang/test/SemaCXX/ms-novtable.cpp index 6dd949d57db..2d55c48df3c 100644 --- a/clang/test/SemaCXX/ms-novtable.cpp +++ b/clang/test/SemaCXX/ms-novtable.cpp @@ -4,3 +4,4 @@ struct __declspec(novtable) S {}; enum __declspec(novtable) E {}; // expected-warning{{'novtable' attribute only applies to classes}} int __declspec(novtable) I; // expected-warning{{'novtable' attribute only applies to classes}} typedef struct T __declspec(novtable) U; // expected-warning{{'novtable' attribute only applies to classes}} +auto z = []() __declspec(novtable) { return nullptr; }; // expected-warning{{'novtable' attribute only applies to classes}} |