aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/cplusplus/Names.h
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@me.com>2014-03-24 16:06:39 +0100
committerErik Verbruggen <erik.verbruggen@digia.com>2014-03-27 13:46:55 +0100
commitb0618281ecaa71a99dea7235c3c955b2135cc127 (patch)
tree100f2aee0d2bf17637508b468df150a017f2206e /src/libs/3rdparty/cplusplus/Names.h
parent186570a25999964e338e55eed08e5a0843a74650 (diff)
C++: Do type and name equality checking in a safe manner.
Change the TypeMatcher to also match names, and use two "block" lists in SafeMatcher to prevent infinite recursion. Task-number: QTCREATORBUG-11240 Change-Id: I0367ae795ee6be579b83aeb8d46723c877e4aa75 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Names.h')
-rw-r--r--src/libs/3rdparty/cplusplus/Names.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libs/3rdparty/cplusplus/Names.h b/src/libs/3rdparty/cplusplus/Names.h
index 855dd4987f..ca59da702f 100644
--- a/src/libs/3rdparty/cplusplus/Names.h
+++ b/src/libs/3rdparty/cplusplus/Names.h
@@ -48,6 +48,7 @@ public:
protected:
virtual void accept0(NameVisitor *visitor) const;
+ virtual bool match0(const Name *otherName, Matcher *matcher) const;
private:
const Name *_base;
@@ -71,6 +72,7 @@ public:
protected:
virtual void accept0(NameVisitor *visitor) const;
+ virtual bool match0(const Name *otherName, Matcher *matcher) const;
private:
const Name *_name;
@@ -115,6 +117,7 @@ public:
protected:
virtual void accept0(NameVisitor *visitor) const;
+ virtual bool match0(const Name *otherName, Matcher *matcher) const;
private:
const Identifier *_identifier;
@@ -194,6 +197,7 @@ public:
protected:
virtual void accept0(NameVisitor *visitor) const;
+ virtual bool match0(const Name *otherName, Matcher *matcher) const;
private:
Kind _kind;
@@ -215,6 +219,7 @@ public:
protected:
virtual void accept0(NameVisitor *visitor) const;
+ virtual bool match0(const Name *otherName, Matcher *matcher) const;
private:
FullySpecifiedType _type;
@@ -247,6 +252,7 @@ public:
protected:
virtual void accept0(NameVisitor *visitor) const;
+ virtual bool match0(const Name *otherName, Matcher *matcher) const;
private:
std::vector<const Name *> _names;
@@ -269,6 +275,7 @@ public:
protected:
virtual void accept0(NameVisitor *visitor) const;
+ virtual bool match0(const Name *otherName, Matcher *matcher) const;
private:
unsigned _classTokenIndex;