diff options
| author | Alasdair Armstrong | 2018-03-13 17:32:58 +0000 |
|---|---|---|
| committer | Alasdair Armstrong | 2018-03-13 17:37:12 +0000 |
| commit | f063a1e71d90368c04cf1f8eb2ba36cd16592e01 (patch) | |
| tree | 2e79ad03a62a85a7c7427da099452a59bf0b88ba /test/c/sail.h | |
| parent | 0da6c4482f2a68d8cde54c5261be6d715d5ce63c (diff) | |
Polymorphic option types now compile to C
Fixed an issue whereby an option constructor that was never
constructed, but only matched on, would cause compilation to
fail. Temporarily fixed an issue where union types that can be
entirely stack-allocated were not being treated as such, by simply
heap-allocating all unions. Need to adapt the code generator to handle
this case properly. Fixed a further small issue whereby multiple union
types would confuse the type specialisation pass.
Added a test case for compiling option types.
RISCV now generates C code, but there are still some bugs that need to
be squashed before it compile and work.
Diffstat (limited to 'test/c/sail.h')
| -rw-r--r-- | test/c/sail.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/test/c/sail.h b/test/c/sail.h index b29e9535..c0f2674b 100644 --- a/test/c/sail.h +++ b/test/c/sail.h @@ -12,6 +12,10 @@ typedef int unit; #define UNIT 0 +unit undefined_unit(const unit u) { + return UNIT; +} + typedef struct { mp_bitcnt_t len; mpz_t *bits; |
