aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/cplusplus/ASTMatcher.cpp
diff options
context:
space:
mode:
authorChristian Kamm <kamm@incasoftware.de>2012-09-18 11:17:29 +0200
committerhjk <qthjk@ovi.com>2012-09-19 11:57:23 +0200
commit44c9cef30a022125e8ebc70b7b58c5ad25fafcd6 (patch)
tree82b2bbb9d9ab7e01ceafae47b4924331e27cd626 /src/libs/3rdparty/cplusplus/ASTMatcher.cpp
parent871112119714c422655f3429d1f190cf6502a97e (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.cpp9
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)