diff options
author | Nick Fitzgerald <fitzgen@gmail.com> | 2016-11-18 16:19:46 -0800 |
---|---|---|
committer | Nick Fitzgerald <fitzgen@gmail.com> | 2016-11-18 16:38:43 -0800 |
commit | 1c18ec72b83a107c16d944e7c260855419eb7f3c (patch) | |
tree | b5615ac9c40209bd09b708a38a5b75bcbf09b7df /libbindgen/tests | |
parent | 1a8a2ac1c325487be455b434749c0b246f27e242 (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.rs | 12 | ||||
-rw-r--r-- | libbindgen/tests/headers/eval-variadic-template-parameter.hpp | 8 |
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); +}; |