summaryrefslogtreecommitdiff
path: root/tests/test_c_generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_c_generator.py')
-rw-r--r--tests/test_c_generator.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/test_c_generator.py b/tests/test_c_generator.py
index 15a3831..0926b15 100644
--- a/tests/test_c_generator.py
+++ b/tests/test_c_generator.py
@@ -367,6 +367,31 @@ class TestCtoC(unittest.TestCase):
self.assertEqual(generator.visit(ast.ext[0].type.type.type),
'const int')
+ def test_atomic_qual(self):
+ #s = '_Atomic(_Atomic(int)*) x;'
+ #ast = parse_to_ast(s)
+ #print(c_generator.CGenerator().visit(ast))
+
+ self._assert_ctoc_correct('_Atomic int x;')
+ self._assert_ctoc_correct('_Atomic int* x;')
+ self._assert_ctoc_correct('int* _Atomic x;')
+
+ # _Atomic specifier gets turned into qualifier.
+ s1 = '_Atomic(int) x;'
+ c1 = self._run_c_to_c(s1)
+ self.assertEqual(c1, '_Atomic int x;\n')
+ self._assert_ctoc_correct(s1)
+
+ s2 = '_Atomic(int*) x;'
+ c2 = self._run_c_to_c(s2)
+ self.assertEqual(c2, 'int * _Atomic x;\n')
+ self._assert_ctoc_correct(s2)
+
+ s3 = '_Atomic(_Atomic(int)*) x;'
+ c3 = self._run_c_to_c(s3)
+ self.assertEqual(c3, '_Atomic int * _Atomic x;\n')
+ self._assert_ctoc_correct(s3)
+
def test_nested_sizeof(self):
src = '1'
for _ in range(30):