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>
This commit is contained in:
Christian Kamm
2012-09-18 11:17:29 +02:00
committed by hjk
parent 8711121197
commit 44c9cef30a
10 changed files with 75 additions and 13 deletions

View File

@@ -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)