summaryrefslogtreecommitdiff
path: root/libbindgen/tests
diff options
context:
space:
mode:
authorNick Fitzgerald <fitzgen@gmail.com>2016-11-18 16:19:46 -0800
committerNick Fitzgerald <fitzgen@gmail.com>2016-11-18 16:38:43 -0800
commit1c18ec72b83a107c16d944e7c260855419eb7f3c (patch)
treeb5615ac9c40209bd09b708a38a5b75bcbf09b7df /libbindgen/tests
parent1a8a2ac1c325487be455b434749c0b246f27e242 (diff)
Do not evaluate variadic template types
This is a workaround for an internal clang assertion that gets triggered if we try to evaluate a variadic template type reference. Fixes #283
Diffstat (limited to 'libbindgen/tests')
-rw-r--r--libbindgen/tests/expectations/tests/eval-variadic-template-parameter.rs12
-rw-r--r--libbindgen/tests/headers/eval-variadic-template-parameter.hpp8
2 files changed, 20 insertions, 0 deletions
diff --git a/libbindgen/tests/expectations/tests/eval-variadic-template-parameter.rs b/libbindgen/tests/expectations/tests/eval-variadic-template-parameter.rs
new file mode 100644
index 00000000..f8c937e2
--- /dev/null
+++ b/libbindgen/tests/expectations/tests/eval-variadic-template-parameter.rs
@@ -0,0 +1,12 @@
+/* automatically generated by rust-bindgen */
+
+
+#![allow(non_snake_case)]
+
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct B<T> {
+ pub _address: u8,
+ pub _phantom_0: ::std::marker::PhantomData<T>,
+}
diff --git a/libbindgen/tests/headers/eval-variadic-template-parameter.hpp b/libbindgen/tests/headers/eval-variadic-template-parameter.hpp
new file mode 100644
index 00000000..0a9e51c1
--- /dev/null
+++ b/libbindgen/tests/headers/eval-variadic-template-parameter.hpp
@@ -0,0 +1,8 @@
+// bindgen-flags: -- -std=c++11
+
+template <typename... T>
+struct B {
+ // Can't generate anything meaningful in Rust for this, but we shouldn't
+ // trigger an assertion inside Clang.
+ static const long c = sizeof...(T);
+};