From e33c8546e005fba30ff882b188c86ca03d0917c8 Mon Sep 17 00:00:00 2001 From: Alasdair Armstrong Date: Tue, 20 Mar 2018 17:57:20 +0000 Subject: Fix C compilation for CHERI and MIPS First, the specialisation of option types has been fixed by allowing the specialisation of constructor return types - this essentially means that a constructor, such as Some : 'a -> option('a) can get specialised to int -> option(int), rather than int -> option('a). This means that these constructors are treated like GADTs internally. Since this only happens just before the C translation, I haven't put much effort into making this very robust so far. Second, there was a bug in C compilation for the typing of return expressions in non-unit contexts, which has been fixed. Finally support for vector literals that are non-bitvectors has been added. --- test/c/gvectorlit.expect | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 test/c/gvectorlit.expect (limited to 'test/c/gvectorlit.expect') diff --git a/test/c/gvectorlit.expect b/test/c/gvectorlit.expect new file mode 100644 index 00000000..d3a1e9ab --- /dev/null +++ b/test/c/gvectorlit.expect @@ -0,0 +1,2 @@ +x[0] = 0xAB +x[1] = 0xCD -- cgit v1.2.3