From 05281e9fc639d9f0ce73e0acaa20da00c9af656e Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 12 Jun 2017 21:50:49 -0700 Subject: Follow up on C++ diagnostics. * ffi.c (ffi_generic_sbit_put, fi_generic_sbit_get, ffi_generic_ubit_put, fi_generic_ubit_get): Add needed coerce from zalloca to mem_t *. (make_ffi_type_struct): Fix signed/unsigned comparison. * lib.c (vector): Fix signed/unsigned comparison. --- ffi.c | 12 ++++++------ lib.c | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ffi.c b/ffi.c index e1e842aa..beef8d1e 100644 --- a/ffi.c +++ b/ffi.c @@ -1409,7 +1409,7 @@ static val ffi_ubit_get(struct txr_ffi_type *tft, mem_t *src, val self) static void ffi_generic_sbit_put(struct txr_ffi_type *tft, val n, mem_t *dst, val self) { - mem_t *tmp = zalloca(sizeof (int)); + mem_t *tmp = coerce(mem_t *, zalloca(sizeof (int))); memcpy(tmp, dst, tft->size); ffi_sbit_put(tft, n, tmp, self); memcpy(dst, tmp, tft->size); @@ -1418,7 +1418,7 @@ static void ffi_generic_sbit_put(struct txr_ffi_type *tft, val n, static val ffi_generic_sbit_get(struct txr_ffi_type *tft, mem_t *src, val self) { - mem_t *tmp = zalloca(sizeof (int)); + mem_t *tmp = coerce(mem_t *, zalloca(sizeof (int))); memcpy(tmp, src, tft->size); return ffi_sbit_get(tft, tmp, self); } @@ -1426,7 +1426,7 @@ static val ffi_generic_sbit_get(struct txr_ffi_type *tft, static void ffi_generic_ubit_put(struct txr_ffi_type *tft, val n, mem_t *dst, val self) { - mem_t *tmp = zalloca(sizeof (int)); + mem_t *tmp = coerce(mem_t *, zalloca(sizeof (int))); memcpy(tmp, dst, tft->size); ffi_ubit_put(tft, n, tmp, self); memcpy(dst, tmp, tft->size); @@ -1435,7 +1435,7 @@ static void ffi_generic_ubit_put(struct txr_ffi_type *tft, val n, static val ffi_generic_ubit_get(struct txr_ffi_type *tft, mem_t *src, val self) { - mem_t *tmp = zalloca(sizeof (int)); + mem_t *tmp = coerce(mem_t *, zalloca(sizeof (int))); memcpy(tmp, src, tft->size); return ffi_ubit_get(tft, tmp, self); } @@ -2744,7 +2744,7 @@ static val make_ffi_type_struct(val syntax, val lisp_type, ucnum most_align = 0; int need_out_handler = 0; int bit_offs = 0; - const int bits_int = 8 * sizeof(int); + const unsigned bits_int = 8 * sizeof(int); ft->type = FFI_TYPE_STRUCT; ft->size = 0; @@ -2800,7 +2800,7 @@ static val make_ffi_type_struct(val syntax, val lisp_type, } if (bits_alloc == 0) { - if (most_align < mtft->align) + if (most_align < (ucnum) mtft->align) most_align = mtft->align; } diff --git a/lib.c b/lib.c index 951d540e..07f733a7 100644 --- a/lib.c +++ b/lib.c @@ -6718,7 +6718,7 @@ val dupl(val fun) val vector(val length, val initval) { - int i; + unsigned i; ucnum len = c_unum(length); ucnum alloc_plus = len + 2; ucnum size = if3(alloc_plus > len, alloc_plus, -1); -- cgit v1.2.3