diff options
author | con <qtc-committer@nokia.com> | 2009-10-27 18:23:58 +0100 |
---|---|---|
committer | con <qtc-committer@nokia.com> | 2009-10-27 18:23:58 +0100 |
commit | 68f193a1890c91ecdd25e4077004ecb10cbd33de (patch) | |
tree | ae387d5f5408407a9b5f67a388f71110d3b8a9da /src/shared/cplusplus | |
parent | 78d89b549a62bb2e869dc371b565cf17c0b55e0f (diff) | |
parent | 33fedfea6471703a7ca6967f322e89b476bde731 (diff) | |
download | qt-creator-68f193a1890c91ecdd25e4077004ecb10cbd33de.tar.gz |
Merge commit 'origin/1.3'
Conflicts:
src/plugins/debugger/gdb/gdbengine.cpp
Needed changes:
src/plugins/qt4projectmanager/qtversionmanager.cpp
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r-- | src/shared/cplusplus/CPlusPlusForwardDeclarations.h | 2 | ||||
-rw-r--r-- | src/shared/cplusplus/CheckDeclaration.cpp | 2 | ||||
-rw-r--r-- | src/shared/cplusplus/FullySpecifiedType.cpp | 19 | ||||
-rw-r--r-- | src/shared/cplusplus/FullySpecifiedType.h | 2 |
4 files changed, 25 insertions, 0 deletions
diff --git a/src/shared/cplusplus/CPlusPlusForwardDeclarations.h b/src/shared/cplusplus/CPlusPlusForwardDeclarations.h index 9e570d2c1a..9616f51780 100644 --- a/src/shared/cplusplus/CPlusPlusForwardDeclarations.h +++ b/src/shared/cplusplus/CPlusPlusForwardDeclarations.h @@ -54,6 +54,8 @@ # if defined(CPLUSPLUS_BUILD_LIB) # define CPLUSPLUS_EXPORT Q_DECL_EXPORT +# elif defined(CPLUSPLUS_BUILD_STATIC_LIB) +# define CPLUSPLUS_EXPORT # else # define CPLUSPLUS_EXPORT Q_DECL_IMPORT # endif diff --git a/src/shared/cplusplus/CheckDeclaration.cpp b/src/shared/cplusplus/CheckDeclaration.cpp index 6a81784360..7e7d01d907 100644 --- a/src/shared/cplusplus/CheckDeclaration.cpp +++ b/src/shared/cplusplus/CheckDeclaration.cpp @@ -190,6 +190,7 @@ bool CheckDeclaration::visit(SimpleDeclarationAST *ast) fun->setScope(_scope); fun->setName(name); fun->setMethodKey(semantic()->currentMethodKey()); + fun->setVirtual(ty.isVirtual()); if (isQ_SIGNAL) fun->setMethodKey(Function::SignalMethod); else if (isQ_SLOT) @@ -281,6 +282,7 @@ bool CheckDeclaration::visit(FunctionDefinitionAST *ast) } Function *fun = funTy->asFunctionType(); + fun->setVirtual(ty.isVirtual()); fun->setStartOffset(tokenAt(ast->firstToken()).offset); fun->setEndOffset(tokenAt(ast->lastToken()).offset); if (ast->declarator) diff --git a/src/shared/cplusplus/FullySpecifiedType.cpp b/src/shared/cplusplus/FullySpecifiedType.cpp index 578c6c9b7d..a9063fda67 100644 --- a/src/shared/cplusplus/FullySpecifiedType.cpp +++ b/src/shared/cplusplus/FullySpecifiedType.cpp @@ -80,6 +80,10 @@ FullySpecifiedType FullySpecifiedType::qualifiedType() const ty.setExtern(false); ty.setMutable(false); ty.setTypedef(false); + + ty.setInline(false); + ty.setVirtual(false); + ty.setExplicit(false); return ty; } @@ -209,4 +213,19 @@ FullySpecifiedType FullySpecifiedType::simplified() const return *this; } +void FullySpecifiedType::copySpecifiers(const FullySpecifiedType &type) +{ + // class storage specifiers + f._isFriend = type.f._isFriend; + f._isRegister = type.f._isRegister; + f._isStatic = type.f._isStatic; + f._isExtern = type.f._isExtern; + f._isMutable = type.f._isMutable; + f._isTypedef = type.f._isTypedef; + + // function specifiers + f._isInline = type.f._isInline; + f._isVirtual = type.f._isVirtual; + f._isExplicit = type.f._isExplicit; +} diff --git a/src/shared/cplusplus/FullySpecifiedType.h b/src/shared/cplusplus/FullySpecifiedType.h index 6c9f83d914..5aea04dca1 100644 --- a/src/shared/cplusplus/FullySpecifiedType.h +++ b/src/shared/cplusplus/FullySpecifiedType.h @@ -121,6 +121,8 @@ public: FullySpecifiedType simplified() const; + void copySpecifiers(const FullySpecifiedType &type); + private: Type *_type; struct Flags { |