diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-05-17 18:19:56 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-05-17 18:19:56 +0000 |
commit | c9a99c5e5cb65462c34b9c4312820ad9cc6ac8a3 (patch) | |
tree | 9a53e06e9eec151f1c812b405a85f0b9e7c30d83 | |
parent | 16f94c6e8f6a62a8d58f2bb699faa6bb8b0cf360 (diff) | |
download | bcm5719-llvm-c9a99c5e5cb65462c34b9c4312820ad9cc6ac8a3.tar.gz bcm5719-llvm-c9a99c5e5cb65462c34b9c4312820ad9cc6ac8a3.zip |
mutable is a storage class that can follow a class/struct/union definition. Fixes PR7153
llvm-svn: 103954
-rw-r--r-- | clang/lib/Parse/ParseDeclCXX.cpp | 1 | ||||
-rw-r--r-- | clang/test/SemaCXX/class.cpp | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp index 149efda8551..3d74d4dc7df 100644 --- a/clang/lib/Parse/ParseDeclCXX.cpp +++ b/clang/lib/Parse/ParseDeclCXX.cpp @@ -981,6 +981,7 @@ void Parser::ParseClassSpecifier(tok::TokenKind TagTokKind, case tok::kw_typedef: // struct foo {...} typedef x; case tok::kw_register: // struct foo {...} register x; case tok::kw_auto: // struct foo {...} auto x; + case tok::kw_mutable: // struct foo {...} mutable x; // As shown above, type qualifiers and storage class specifiers absolutely // can occur after class specifiers according to the grammar. However, // almost noone actually writes code like this. If we see one of these, diff --git a/clang/test/SemaCXX/class.cpp b/clang/test/SemaCXX/class.cpp index 7eea67ad445..09578e6900e 100644 --- a/clang/test/SemaCXX/class.cpp +++ b/clang/test/SemaCXX/class.cpp @@ -136,3 +136,9 @@ namespace pr6629 { }; }; } + +namespace PR7153 { + class EnclosingClass { + struct A { } mutable *member; + }; +} |