AstNode *node = children_list[1];
                        if (op_type != AST_POS)
-                               for (size_t i = 2; i < children_list.size(); i++)
+                               for (size_t i = 2; i < children_list.size(); i++) {
                                        node = new AstNode(op_type, node, children_list[i]);
+                                       node->location = location;
+                               }
                        if (invert_results)
                                node = new AstNode(AST_BIT_NOT, node);
 
 
        /* no name */ {
                astbuf2 = astbuf1->clone();
                ast_stack.back()->children.push_back(astbuf2);
-       } '(' cell_port_list ')';
+       } '(' cell_port_list ')' {
+               SET_AST_NODE_LOC(astbuf2, @1, @$);
+       }
 
 cell_parameter_list_opt:
        '#' '(' cell_parameter_list ')' | /* empty */;