Commit 7cdfd770 authored by Robert Bradshaw's avatar Robert Bradshaw

Allow extern "functions" (e.g. macros) to return array types.

parent 9e6d73bb
...@@ -607,9 +607,6 @@ class CFuncDeclaratorNode(CDeclaratorNode): ...@@ -607,9 +607,6 @@ class CFuncDeclaratorNode(CDeclaratorNode):
error(self.exception_value.pos, error(self.exception_value.pos,
"Exception value incompatible with function return type") "Exception value incompatible with function return type")
exc_check = self.exception_check exc_check = self.exception_check
if return_type.is_array:
error(self.pos,
"Function cannot return an array")
if return_type.is_cfunction: if return_type.is_cfunction:
error(self.pos, error(self.pos,
"Function cannot return a function") "Function cannot return a function")
...@@ -1656,6 +1653,9 @@ class CFuncDefNode(FuncDefNode): ...@@ -1656,6 +1653,9 @@ class CFuncDefNode(FuncDefNode):
api = self.api, modifiers = self.modifiers) api = self.api, modifiers = self.modifiers)
self.entry.inline_func_in_pxd = self.inline_in_pxd self.entry.inline_func_in_pxd = self.inline_in_pxd
self.return_type = type.return_type self.return_type = type.return_type
if self.return_type.is_array and visibility != 'extern':
error(self.pos,
"Function cannot return an array")
if self.overridable and not env.is_module_scope: if self.overridable and not env.is_module_scope:
if len(self.args) < 1 or not self.args[0].type.is_pyobject: if len(self.args) < 1 or not self.args[0].type.is_pyobject:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment