summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2012-02-02 11:40:01 +0100
committerErik Verbruggen <erik.verbruggen@nokia.com>2012-02-02 12:22:20 +0100
commitdd4299073e55a21f593817316f7e013e02f62b4e (patch)
tree26ffa0c085ba81f16c8fa6071f9873250203902b /src/libs/cplusplus
parenta2f9ee870e6b17d8526f365a56bc7621abda15dc (diff)
downloadqt-creator-dd4299073e55a21f593817316f7e013e02f62b4e.tar.gz
C++11: handle noexcept specifications.
Change-Id: I7da3affea2758b2e01124105e2521e1f2c5f6678 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Diffstat (limited to 'src/libs/cplusplus')
-rw-r--r--src/libs/cplusplus/FindUsages.cpp18
-rw-r--r--src/libs/cplusplus/FindUsages.h2
2 files changed, 12 insertions, 8 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)
diff --git a/src/libs/cplusplus/FindUsages.h b/src/libs/cplusplus/FindUsages.h
index d35813735c..e4df7e8224 100644
--- a/src/libs/cplusplus/FindUsages.h
+++ b/src/libs/cplusplus/FindUsages.h
@@ -138,7 +138,7 @@ protected:
virtual bool visit(BaseSpecifierAST *ast);
virtual bool visit(CtorInitializerAST *ast);
virtual bool visit(EnumeratorAST *ast);
- virtual bool visit(ExceptionSpecificationAST *ast);
+ virtual bool visit(DynamicExceptionSpecificationAST *ast);
virtual bool visit(MemInitializerAST *ast);
virtual bool visit(NestedNameSpecifierAST *ast);
virtual bool visit(NewPlacementAST *ast);