summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus
diff options
context:
space:
mode:
authorcon <qtc-committer@nokia.com>2009-10-27 18:23:58 +0100
committercon <qtc-committer@nokia.com>2009-10-27 18:23:58 +0100
commit68f193a1890c91ecdd25e4077004ecb10cbd33de (patch)
treeae387d5f5408407a9b5f67a388f71110d3b8a9da /src/shared/cplusplus
parent78d89b549a62bb2e869dc371b565cf17c0b55e0f (diff)
parent33fedfea6471703a7ca6967f322e89b476bde731 (diff)
downloadqt-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.h2
-rw-r--r--src/shared/cplusplus/CheckDeclaration.cpp2
-rw-r--r--src/shared/cplusplus/FullySpecifiedType.cpp19
-rw-r--r--src/shared/cplusplus/FullySpecifiedType.h2
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 {