summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSye van der Veen <svanderveen@blackberry.com>2013-06-10 12:56:15 -0400
committerSye van der Veen <svanderveen@blackberry.com>2013-06-10 12:56:15 -0400
commit51a46ec9e3cd619a35f04989f06c4fc74550f27d (patch)
treebc63ba2fc3ce73a06f62ff20211c4d404db4f47f /tests
parent262a4157db3737efa096d2c77d4845458fe638ef (diff)
downloadpycparser-51a46ec9e3cd619a35f04989f06c4fc74550f27d.tar.gz
Functions that don't have explicit return types are assumed to return int
Diffstat (limited to 'tests')
-rw-r--r--tests/test_c_parser.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/test_c_parser.py b/tests/test_c_parser.py
index e1ceec3..bae764c 100644
--- a/tests/test_c_parser.py
+++ b/tests/test_c_parser.py
@@ -260,6 +260,15 @@ class TestCParser_fundamentals(TestCParser_base):
],
['TypeDecl', ['IdentifierType', ['int']]]]])
+ # function return values and parameters may not have type information
+ self.assertEqual(self.get_decl('extern foobar(foo, bar);'),
+ ['Decl', 'foobar',
+ ['FuncDecl',
+ [ ['ID', 'foo'],
+ ['ID', 'bar']
+ ],
+ ['TypeDecl', ['IdentifierType', ['int']]]]])
+
def test_nested_decls(self): # the fun begins
self.assertEqual(self.get_decl('char** ar2D;'),
['Decl', 'ar2D',
@@ -1067,6 +1076,20 @@ class TestCParser_fundamentals(TestCParser_base):
self.assertEqual(expand_decl(f3.param_decls[1]),
['Decl', 'c', ['PtrDecl', ['TypeDecl', ['IdentifierType', ['long']]]]])
+ # function return values and parameters may not have type information
+ f4 = parse_fdef('''
+ que(p)
+ {
+ return 3;
+ }
+ ''')
+
+ self.assertEqual(fdef_decl(f4),
+ ['Decl', 'que',
+ ['FuncDecl',
+ [['ID', 'p']],
+ ['TypeDecl', ['IdentifierType', ['int']]]]])
+
def test_unified_string_literals(self):
# simple string, for reference
d1 = self.get_decl_init('char* s = "hello";')