From da67c7c6c9723e8426ebeaf73c120d9090a576d6 Mon Sep 17 00:00:00 2001 From: Lorenz Haas Date: Sat, 21 Mar 2015 20:10:12 +0100 Subject: [PATCH] C++: Fix crash when accessing an empty list in Rewrite Task-number: QTCREATORBUG-14163 Change-Id: I57eca70466bbf5d28d16afafc07ab243206fcff5 Reviewed-by: Orgad Shaneh --- src/libs/cplusplus/CppRewriter.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/libs/cplusplus/CppRewriter.cpp b/src/libs/cplusplus/CppRewriter.cpp index 3e74e9b4a25..63eadd912c5 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)