aboutsummaryrefslogtreecommitdiffstats
path: root/3rdparty/pybind11/tests/test_embed/external_module.cpp
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2020-07-27 13:50:42 +0100
committerGitHub <noreply@github.com>2020-07-27 13:50:42 +0100
commitb39a2a502065ec1407417ffacdac2154385bf80f (patch)
tree3349c93ac87f5758009c53b3e2eb5b9a130cd0d6 /3rdparty/pybind11/tests/test_embed/external_module.cpp
parente6991ad5dc79f6118838f091cc05f10d3377eb4a (diff)
parentfe398ab983aee9283f61c288dc98d94542c30332 (diff)
downloadnextpnr-b39a2a502065ec1407417ffacdac2154385bf80f.tar.gz
nextpnr-b39a2a502065ec1407417ffacdac2154385bf80f.tar.bz2
nextpnr-b39a2a502065ec1407417ffacdac2154385bf80f.zip
Merge pull request #477 from YosysHQ/pybind11
Move to pybind11
Diffstat (limited to '3rdparty/pybind11/tests/test_embed/external_module.cpp')
-rw-r--r--3rdparty/pybind11/tests/test_embed/external_module.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/3rdparty/pybind11/tests/test_embed/external_module.cpp b/3rdparty/pybind11/tests/test_embed/external_module.cpp
new file mode 100644
index 00000000..e9a6058b
--- /dev/null
+++ b/3rdparty/pybind11/tests/test_embed/external_module.cpp
@@ -0,0 +1,23 @@
+#include <pybind11/pybind11.h>
+
+namespace py = pybind11;
+
+/* Simple test module/test class to check that the referenced internals data of external pybind11
+ * modules aren't preserved over a finalize/initialize.
+ */
+
+PYBIND11_MODULE(external_module, m) {
+ class A {
+ public:
+ A(int value) : v{value} {};
+ int v;
+ };
+
+ py::class_<A>(m, "A")
+ .def(py::init<int>())
+ .def_readwrite("value", &A::v);
+
+ m.def("internals_at", []() {
+ return reinterpret_cast<uintptr_t>(&py::detail::get_internals());
+ });
+}