summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/FindUsages.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/cplusplus/FindUsages.cpp')
-rw-r--r--src/libs/cplusplus/FindUsages.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp
index c581b4513a..6e9c525763 100644
--- a/src/libs/cplusplus/FindUsages.cpp
+++ b/src/libs/cplusplus/FindUsages.cpp
@@ -511,7 +511,7 @@ void FindUsages::enumerator(EnumeratorAST *ast)
this->expression(ast->expression);
}
-bool FindUsages::visit(ExceptionSpecificationAST *ast)
+bool FindUsages::visit(DynamicExceptionSpecificationAST *ast)
{
(void) ast;
Q_ASSERT(!"unreachable");
@@ -523,13 +523,17 @@ void FindUsages::exceptionSpecification(ExceptionSpecificationAST *ast)
if (! ast)
return;
- // unsigned throw_token = ast->throw_token;
- // unsigned lparen_token = ast->lparen_token;
- // unsigned dot_dot_dot_token = ast->dot_dot_dot_token;
- for (ExpressionListAST *it = ast->type_id_list; it; it = it->next) {
- this->expression(it->value);
+ if (DynamicExceptionSpecificationAST *dyn = ast->asDynamicExceptionSpecification()) {
+ // unsigned throw_token = ast->throw_token;
+ // unsigned lparen_token = ast->lparen_token;
+ // unsigned dot_dot_dot_token = ast->dot_dot_dot_token;
+ for (ExpressionListAST *it = dyn->type_id_list; it; it = it->next) {
+ this->expression(it->value);
+ }
+ // unsigned rparen_token = ast->rparen_token;
+ } else if (NoExceptSpecificationAST *no = ast->asNoExceptSpecification()) {
+ this->expression(no->expression);
}
- // unsigned rparen_token = ast->rparen_token;
}
bool FindUsages::visit(MemInitializerAST *ast)