summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/CheckDeclaration.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-05-26 13:56:25 +0200
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-05-26 13:56:34 +0200
commitdfadb0d076816cc107799d2cae0f31e8b738d13e (patch)
treefe89b70ba5446f7355e7a4072762dc3fbd0e6c8d /src/shared/cplusplus/CheckDeclaration.cpp
parent49c75444bdd158f3bbc06d94bc18fb6b14e8a027 (diff)
downloadqt-creator-dfadb0d076816cc107799d2cae0f31e8b738d13e.tar.gz
Added support for the GCC "unavailable" attribute.
Diffstat (limited to 'src/shared/cplusplus/CheckDeclaration.cpp')
-rw-r--r--src/shared/cplusplus/CheckDeclaration.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/shared/cplusplus/CheckDeclaration.cpp b/src/shared/cplusplus/CheckDeclaration.cpp
index ec8ddfcc4c..467e28c92d 100644
--- a/src/shared/cplusplus/CheckDeclaration.cpp
+++ b/src/shared/cplusplus/CheckDeclaration.cpp
@@ -177,6 +177,8 @@ bool CheckDeclaration::visit(SimpleDeclarationAST *ast)
if (ty.isDeprecated())
symbol->setDeprecated(true);
+ if (ty.isUnavailable())
+ symbol->setUnavailable(true);
if (ty.isFriend())
symbol->setStorage(Symbol::Friend);
@@ -213,6 +215,8 @@ bool CheckDeclaration::visit(SimpleDeclarationAST *ast)
fun->setVirtual(ty.isVirtual());
if (ty.isDeprecated())
fun->setDeprecated(true);
+ if (ty.isUnavailable())
+ fun->setUnavailable(true);
if (isQ_SIGNAL)
fun->setMethodKey(Function::SignalMethod);
else if (isQ_SLOT)
@@ -232,6 +236,8 @@ bool CheckDeclaration::visit(SimpleDeclarationAST *ast)
symbol->setType(declTy);
if (declTy.isDeprecated())
symbol->setDeprecated(true);
+ if (declTy.isUnavailable())
+ symbol->setUnavailable(true);
if (_templateParameters && it == ast->declarator_list) {
symbol->setTemplateParameters(_templateParameters);
@@ -257,6 +263,8 @@ bool CheckDeclaration::visit(SimpleDeclarationAST *ast)
if (ty.isDeprecated())
symbol->setDeprecated(true);
+ if (ty.isUnavailable())
+ symbol->setUnavailable(true);
if (it->value && it->value->initializer) {
FullySpecifiedType initTy = semantic()->check(it->value->initializer, _scope);
@@ -338,6 +346,8 @@ bool CheckDeclaration::visit(FunctionDefinitionAST *ast)
fun->setVirtual(ty.isVirtual());
if (ty.isDeprecated())
fun->setDeprecated(true);
+ if (ty.isUnavailable())
+ fun->setUnavailable(true);
fun->setStartOffset(tokenAt(ast->firstToken()).offset);
fun->setEndOffset(tokenAt(ast->lastToken()).offset);
if (ast->declarator)
@@ -727,6 +737,8 @@ bool CheckDeclaration::visit(ObjCMethodDeclarationAST *ast)
symbol->setVisibility(semantic()->currentObjCVisibility());
if (ty.isDeprecated())
symbol->setDeprecated(true);
+ if (ty.isUnavailable())
+ symbol->setUnavailable(true);
_scope->enterSymbol(symbol);