diff --git a/src/plugins/debugger/namedemangler/parsetreenodes.cpp b/src/plugins/debugger/namedemangler/parsetreenodes.cpp index e0a33b212161a1c784e1cf48485565ed5d37508f..2d5bb780e13615d0e9f1bf09f0f607cb908c620d 100644 --- a/src/plugins/debugger/namedemangler/parsetreenodes.cpp +++ b/src/plugins/debugger/namedemangler/parsetreenodes.cpp @@ -47,9 +47,17 @@ (parentNode)->addChild(parseState->popFromStack()); \ } while (0) +#define PARSE_RULE_AND_ADD_RESULT_AS_CHILD_TO_THIS(NodeType, parseState) \ + do { \ + ParseTreeNode::parseRule(parseState); \ + DEMANGLER_ASSERT(parseState->stackElementCount() > 0); \ + DEMANGLER_ASSERT(parseState->stackTop().dynamicCast()); \ + addChild(parseState->popFromStack()); \ + } while (0) + #define PARSE_RULE_AND_ADD_RESULT_AS_CHILD(nodeType) \ - PARSE_RULE_AND_ADD_RESULT_AS_CHILD_TO_NODE(nodeType, parseState(), this) + PARSE_RULE_AND_ADD_RESULT_AS_CHILD_TO_THIS(nodeType, parseState()) #define CHILD_AT(obj, index) obj->childAt(index, QLatin1String(Q_FUNC_INFO), QLatin1String(__FILE__), __LINE__) #define MY_CHILD_AT(index) CHILD_AT(this, index) #define CHILD_TO_BYTEARRAY(index) MY_CHILD_AT(index)->toByteArray()