Author: Armin Rigo <[email protected]>
Branch:
Changeset: r2196:b8538812a48b
Date: 2015-06-29 22:11 +0200
http://bitbucket.org/cffi/cffi/changeset/b8538812a48b/
Log: Issue #207: fix for anonymous enums with ffi.include()
diff --git a/cffi/cparser.py b/cffi/cparser.py
--- a/cffi/cparser.py
+++ b/cffi/cparser.py
@@ -633,6 +633,8 @@
def include(self, other):
for name, tp in other._declarations.items():
+ if name.startswith('anonymous $enum_$'):
+ continue # fix for test_anonymous_enum_include
kind = name.split(' ', 1)[0]
if kind in ('struct', 'union', 'enum', 'anonymous'):
self._declare(name, tp, included=True)
diff --git a/testing/cffi0/backend_tests.py b/testing/cffi0/backend_tests.py
--- a/testing/cffi0/backend_tests.py
+++ b/testing/cffi0/backend_tests.py
@@ -1774,3 +1774,14 @@
def test_ffi_self_include(self):
ffi = FFI(backend=self.Backend())
py.test.raises(ValueError, ffi.include, ffi)
+
+ def test_anonymous_enum_include(self):
+ ffi1 = FFI()
+ ffi1.cdef("enum { EE1 };")
+ ffi = FFI()
+ ffi.include(ffi1)
+ ffi.cdef("enum { EE2, EE3 };")
+ lib = ffi.dlopen(None)
+ assert lib.EE1 == 0
+ assert lib.EE2 == 0
+ assert lib.EE3 == 1
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit