summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libs/cplusplus/CppRewriter.cpp10
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)