summaryrefslogtreecommitdiff
path: root/src/libs/3rdparty
diff options
context:
space:
mode:
authorPrzemyslaw Gorszkowski <pgorszkowski@gmail.com>2013-05-09 00:34:28 +0200
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-05-10 11:16:04 +0200
commit5dbcb974b02e788f9c213a917105a4e6b6593281 (patch)
tree7942c2746cf699f40787a69f7cc89d8f51b02357 /src/libs/3rdparty
parentcd8cd4fdb11e54d241748ed72f480aaf641d1161 (diff)
downloadqt-creator-5dbcb974b02e788f9c213a917105a4e6b6593281.tar.gz
C++: added missing cloning of AnonymousNameId
When instantiate a template with anonymous class/struct/union AnonymousNameId has to be cloned. Task-number: QTCREATORBUG-9227 Change-Id: Iedca5e41589e68a94a35cd4387241052c70c50df Reviewed-by: Sergey Shambir <sergey.shambir.auto@gmail.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/libs/3rdparty')
-rw-r--r--src/libs/3rdparty/cplusplus/Templates.cpp5
-rw-r--r--src/libs/3rdparty/cplusplus/Templates.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/src/libs/3rdparty/cplusplus/Templates.cpp b/src/libs/3rdparty/cplusplus/Templates.cpp
index b813600143..5edef37c7f 100644
--- a/src/libs/3rdparty/cplusplus/Templates.cpp
+++ b/src/libs/3rdparty/cplusplus/Templates.cpp
@@ -408,6 +408,11 @@ void CloneName::visit(const Identifier *name)
_name = _control->identifier(name->chars(), name->size());
}
+void CloneName::visit(const AnonymousNameId *name)
+{
+ _name = _control->anonymousNameId(name->classTokenIndex());
+}
+
void CloneName::visit(const TemplateNameId *name)
{
std::vector<FullySpecifiedType> args(name->templateArgumentCount());
diff --git a/src/libs/3rdparty/cplusplus/Templates.h b/src/libs/3rdparty/cplusplus/Templates.h
index 2784f02d7f..f2b5b9a367 100644
--- a/src/libs/3rdparty/cplusplus/Templates.h
+++ b/src/libs/3rdparty/cplusplus/Templates.h
@@ -109,6 +109,7 @@ public:
protected:
virtual void visit(const Identifier *name);
+ virtual void visit(const AnonymousNameId *name);
virtual void visit(const TemplateNameId *name);
virtual void visit(const DestructorNameId *name);
virtual void visit(const OperatorNameId *name);