summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r--src/shared/cplusplus/FullySpecifiedType.cpp19
-rw-r--r--src/shared/cplusplus/FullySpecifiedType.h2
2 files changed, 21 insertions, 0 deletions
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 {