diff options
author | con <qtc-committer@nokia.com> | 2009-10-29 18:54:17 +0100 |
---|---|---|
committer | con <qtc-committer@nokia.com> | 2009-10-29 18:54:17 +0100 |
commit | be3fafc31167e9ae3b16d8d2361488fc7097191e (patch) | |
tree | c1e28382252aba983b7e354d75101b63edc1fa40 /src/shared/cplusplus | |
parent | c1413ffa8a4bbd7d762b2ec3982c55ccf5c9e30f (diff) | |
parent | 2be0845c7492ad991f23ce5c90c322df788b62b5 (diff) | |
download | qt-creator-be3fafc31167e9ae3b16d8d2361488fc7097191e.tar.gz |
Merge commit '2be0845c7492ad991f23ce5c90c322df788b62b5'
Conflicts:
src/plugins/projectexplorer/projectexplorer.h
src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
src/plugins/qt4projectmanager/qt4runconfiguration.cpp
src/plugins/qt4projectmanager/qtversionmanager.cpp
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r-- | src/shared/cplusplus/CheckDeclaration.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/shared/cplusplus/CheckDeclaration.cpp b/src/shared/cplusplus/CheckDeclaration.cpp index 7e7d01d907..1e7afdd166 100644 --- a/src/shared/cplusplus/CheckDeclaration.cpp +++ b/src/shared/cplusplus/CheckDeclaration.cpp @@ -263,8 +263,29 @@ bool CheckDeclaration::visit(AsmDefinitionAST *) return false; } -bool CheckDeclaration::visit(ExceptionDeclarationAST *) +bool CheckDeclaration::visit(ExceptionDeclarationAST *ast) { + FullySpecifiedType ty = semantic()->check(ast->type_specifier, _scope); + FullySpecifiedType qualTy = ty.qualifiedType(); + + Name *name = 0; + FullySpecifiedType declTy = semantic()->check(ast->declarator, qualTy, + _scope, &name); + + unsigned location = locationOfDeclaratorId(ast->declarator); + if (! location) { + if (ast->declarator) + location = ast->declarator->firstToken(); + else + location = ast->firstToken(); + } + + Declaration *symbol = control()->newDeclaration(location, name); + symbol->setStartOffset(tokenAt(ast->firstToken()).offset); + symbol->setEndOffset(tokenAt(ast->lastToken()).offset); + symbol->setType(declTy); + _scope->enterSymbol(symbol); + return false; } |