diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2017-06-02 06:48:12 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2017-06-02 06:48:12 -0700 |
commit | 3174a04b0642a489b332510429a7ceec3ca02846 (patch) | |
tree | adcbb9961fa18d872dddf672e94522c44cc0565b | |
parent | 31a923cdf8013673afe17a0fc10cfcf3b07d41e6 (diff) | |
download | txr-3174a04b0642a489b332510429a7ceec3ca02846.tar.gz txr-3174a04b0642a489b332510429a7ceec3ca02846.tar.bz2 txr-3174a04b0642a489b332510429a7ceec3ca02846.zip |
ffi: don't allow size calculation of bitfield type.
* ffi.c (ffi_size): Check for a bitfield type and
diagnose.
-rw-r--r-- | ffi.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -3029,7 +3029,11 @@ val ffi_typedef(val name, val type) val ffi_size(val type) { + val self = lit("ffi-size"); struct txr_ffi_type *tft = ffi_type_struct_checked(type); + if (tft->size == 0 && bitfield_syntax_p(tft->syntax)) + uw_throwf(error_s, lit("~a: bitfield type ~s has no size"), + self, type, nao); return num(tft->size); } |