diff options
author | Lorenz Haas <lykurg@gmail.com> | 2015-03-21 20:10:12 +0100 |
---|---|---|
committer | Lorenz Haas <lykurg@gmail.com> | 2015-03-23 18:23:17 +0000 |
commit | da67c7c6c9723e8426ebeaf73c120d9090a576d6 (patch) | |
tree | d329f61c41c178464ab86ff680833fe180038d0f /src/libs/cplusplus/CppRewriter.cpp | |
parent | c097867f3cc0c04e40a96a86dd41848c4a21eb13 (diff) | |
download | qt-creator-da67c7c6c9723e8426ebeaf73c120d9090a576d6.tar.gz |
C++: Fix crash when accessing an empty list in Rewrite
Task-number: QTCREATORBUG-14163
Change-Id: I57eca70466bbf5d28d16afafc07ab243206fcff5
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/libs/cplusplus/CppRewriter.cpp')
-rw-r--r-- | src/libs/cplusplus/CppRewriter.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libs/cplusplus/CppRewriter.cpp b/src/libs/cplusplus/CppRewriter.cpp index 3e74e9b4a2..63eadd912c 100644 --- a/src/libs/cplusplus/CppRewriter.cpp +++ b/src/libs/cplusplus/CppRewriter.cpp @@ -63,8 +63,10 @@ public: { TypeVisitor::accept(ty.type()); unsigned flags = ty.flags(); - flags |= temps.back().flags(); - temps.back().setFlags(flags); + if (!temps.isEmpty()) { + flags |= temps.back().flags(); + temps.back().setFlags(flags); + } } public: @@ -73,7 +75,7 @@ public: FullySpecifiedType operator()(const FullySpecifiedType &ty) { accept(ty); - return temps.takeLast(); + return (!temps.isEmpty()) ? temps.takeLast() : ty; } virtual void visit(UndefinedType *) @@ -241,7 +243,7 @@ public: return 0; accept(name); - return temps.takeLast(); + return (!temps.isEmpty()) ? temps.takeLast() : name; } virtual void visit(const QualifiedNameId *name) |