diff options
author | Christian Kamm <kamm@incasoftware.de> | 2012-09-18 11:17:29 +0200 |
---|---|---|
committer | hjk <qthjk@ovi.com> | 2012-09-19 11:57:23 +0200 |
commit | 44c9cef30a022125e8ebc70b7b58c5ad25fafcd6 (patch) | |
tree | 82b2bbb9d9ab7e01ceafae47b4924331e27cd626 /src/libs/3rdparty/cplusplus/ASTMatcher.cpp | |
parent | 871112119714c422655f3429d1f190cf6502a97e (diff) |
C++11: Make 'enum struct', enum-base and opaque enum decls work.
For declarations like:
enum struct Foo : long int;
Change-Id: Id813efdbc31c8d70a4b40bb0101dc33a8dd2556a
Reviewed-by: hjk <qthjk@ovi.com>
Diffstat (limited to 'src/libs/3rdparty/cplusplus/ASTMatcher.cpp')
-rw-r--r-- | src/libs/3rdparty/cplusplus/ASTMatcher.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libs/3rdparty/cplusplus/ASTMatcher.cpp b/src/libs/3rdparty/cplusplus/ASTMatcher.cpp index 061c75814d..e4e899c7e5 100644 --- a/src/libs/3rdparty/cplusplus/ASTMatcher.cpp +++ b/src/libs/3rdparty/cplusplus/ASTMatcher.cpp @@ -935,11 +935,20 @@ bool ASTMatcher::match(EnumSpecifierAST *node, EnumSpecifierAST *pattern) pattern->enum_token = node->enum_token; + pattern->key_token = node->key_token; + if (! pattern->name) pattern->name = node->name; else if (! AST::match(node->name, pattern->name, this)) return false; + pattern->colon_token = node->colon_token; + + if (! pattern->type_specifier_list) + pattern->type_specifier_list = node->type_specifier_list; + else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this)) + return false; + pattern->lbrace_token = node->lbrace_token; if (! pattern->enumerator_list) |