summaryrefslogtreecommitdiff
path: root/tests/headers/float128.hpp
diff options
context:
space:
mode:
authorNick Fitzgerald <fitzgen@gmail.com>2016-11-10 10:39:24 -0800
committerNick Fitzgerald <fitzgen@gmail.com>2016-11-11 10:10:29 -0800
commit53f7a50e2e4f5ef4784e005dee1e00089a7d4ec8 (patch)
tree14c3e7330b459a041c6d35071d08c760ea0f6e8a /tests/headers/float128.hpp
parent8d83bdfb48e292abd7db5a3093aefce0c893d3a5 (diff)
Add rudimentary support for `__float128`
This adds `__float128` as a builtin type, and generates an opaque array of 16 `u8`s to represent it in the generated bindings since Rust doesn't have an `f128` type. Context and motivation: Somehow `__float128` is getting pulled into SpiderMonkey headers from somewhere, and the lack of `__float128` support was causing bindgen to hard fail in bindings generation.
Diffstat (limited to 'tests/headers/float128.hpp')
-rw-r--r--tests/headers/float128.hpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/headers/float128.hpp b/tests/headers/float128.hpp
new file mode 100644
index 00000000..f554e88e
--- /dev/null
+++ b/tests/headers/float128.hpp
@@ -0,0 +1,13 @@
+// FIXME: libclang < 3.9 does not expose `__float128` in its interface, so this
+// test will fail. Once we remove support for `--features llvm_stable` and
+// require libclang >= 3.9, we can reenable this test.
+//
+// static __float128 global = 1.0;
+
+// FIXME: We have no way to get 128 bit aligned structs in Rust at the moment,
+// and therefore the generated layout tests for this struct will fail. When we
+// can enforce 128 bit alignment, we can re-enable this test.
+//
+// struct A {
+// __float128 f;
+// };