Commit 9e3a2d7a authored by Robert Bradshaw's avatar Robert Bradshaw

Warn for non-trivial type declarators in shared declarations.

parent 12be1349
...@@ -1175,6 +1175,12 @@ class CVarDefNode(StatNode): ...@@ -1175,6 +1175,12 @@ class CVarDefNode(StatNode):
visibility = self.visibility visibility = self.visibility
for declarator in self.declarators: for declarator in self.declarators:
if (len(self.declarators) > 1
and not isinstance(declarator, CNameDeclaratorNode)
and env.directives['warn.multiple_declarators']):
warning(declarator.pos, "Non-trivial type declarators in shared declaration.", 1)
if isinstance(declarator, CFuncDeclaratorNode): if isinstance(declarator, CFuncDeclaratorNode):
name_declarator, type = declarator.analyse(base_type, env, directive_locals=self.directive_locals) name_declarator, type = declarator.analyse(base_type, env, directive_locals=self.directive_locals)
else: else:
......
...@@ -123,6 +123,7 @@ directive_defaults = { ...@@ -123,6 +123,7 @@ directive_defaults = {
'warn.unused': False, 'warn.unused': False,
'warn.unused_arg': False, 'warn.unused_arg': False,
'warn.unused_result': False, 'warn.unused_result': False,
'warn.multiple_declarators': True,
# optimizations # optimizations
'optimize.inline_defnode_calls': True, 'optimize.inline_defnode_calls': True,
......
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