diff options
-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) |