diff options
author | Peter Wu <lekensteyn@gmail.com> | 2011-12-02 09:37:57 +0000 |
---|---|---|
committer | Peter Wu <lekensteyn@gmail.com> | 2011-12-02 09:37:57 +0000 |
commit | 8f71ab7cfe0a2dca5a55cb835dbb8ac18d775daa (patch) | |
tree | 59f840b88e9c6f2dd275df8e9a28225d4441b0d3 | |
parent | 8987ccdd749df101b3a1bcd6715929493b84ffa1 (diff) | |
download | pp2cc-8f71ab7cfe0a2dca5a55cb835dbb8ac18d775daa.tar.gz |
Fix error on function declaration without definition
-rwxr-xr-x | pp2cc.py | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -1118,13 +1118,16 @@ class Parse(object): """Processes function parameters and returns assembly for modifying SP """ lines = [] - variables = linked_node.getFunctionNode().variables - params = linked_node.node.params - try: - for param in params: - variables.declName(param.name, is_param=True) - except RuntimeError as errmsg: - self.logger.error(errmsg, linked_node=linked_node) + function = linked_node.getFunctionNode() + # function may be None if this is a function declaration without body + if function: + variables = function.variables + params = linked_node.node.params + try: + for param in params: + variables.declName(param.name, is_param=True) + except RuntimeError as errmsg: + self.logger.error(errmsg, linked_node=linked_node) return lines def parseStatement(self, node, parent_linked_node, level_increment=False): linked_node = LinkedNode(node, parent_linked_node, level_increment=level_increment) |