diff options
-rw-r--r-- | src/parsers/expr/addr_expr.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/parsers/expr/addr_expr.cpp b/src/parsers/expr/addr_expr.cpp index 7e2121f..559402d 100644 --- a/src/parsers/expr/addr_expr.cpp +++ b/src/parsers/expr/addr_expr.cpp @@ -37,7 +37,26 @@ void parseAddrExprNode(AddrExprNode *node) // if (!node->parseChilds) // return; - fillExprOperands(node); +// fillExprOperands(node); + + tree gccNode = TREE_OPERAND (node->gccNode, 0); + + // stop recursion if operand is FUNCTION_DECL + if (TREE_CODE(gccNode) == FUNCTION_DECL) + { + node->args.push_back(createParseNode( + node, + gccNode, + "operand", + false)); + } + else + { + node->args.push_back(createParseNode( + node, + gccNode, + "operand")); + } } } |