wuffs gen -version=0.2.0-alpha.36
diff --git a/release/c/wuffs-v0.2.c b/release/c/wuffs-v0.2.c
index 4f0eeca..8ea6abd 100644
--- a/release/c/wuffs-v0.2.c
+++ b/release/c/wuffs-v0.2.c
@@ -26,6 +26,12 @@
#include <stdint.h>
#include <string.h>
+// GCC does not warn for unused *static inline* functions, but clang does.
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-function"
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -54,15 +60,15 @@
// each major.minor branch, the commit count should increase monotonically.
//
// WUFFS_VERSION was overridden by "wuffs gen -version" based on revision
-// 5a98f06cab3d64734c77a308559097ee28f71fa3 committed on 2019-03-09.
+// 6b9f658c593bb57851e3fac7df2e5f3949a4fac8 committed on 2019-04-07.
#define WUFFS_VERSION ((uint64_t)0x0000000000020000)
#define WUFFS_VERSION_MAJOR ((uint64_t)0x00000000)
#define WUFFS_VERSION_MINOR ((uint64_t)0x0002)
#define WUFFS_VERSION_PATCH ((uint64_t)0x0000)
-#define WUFFS_VERSION_PRE_RELEASE_LABEL "alpha.35"
-#define WUFFS_VERSION_BUILD_METADATA_COMMIT_COUNT 1655
-#define WUFFS_VERSION_BUILD_METADATA_COMMIT_DATE 20190309
-#define WUFFS_VERSION_STRING "0.2.0-alpha.35+1655.20190309"
+#define WUFFS_VERSION_PRE_RELEASE_LABEL "alpha.36"
+#define WUFFS_VERSION_BUILD_METADATA_COMMIT_COUNT 1675
+#define WUFFS_VERSION_BUILD_METADATA_COMMIT_DATE 20190407
+#define WUFFS_VERSION_STRING "0.2.0-alpha.36+1675.20190407"
// Define WUFFS_CONFIG__STATIC_FUNCTIONS to make all of Wuffs' functions have
// static storage. The motivation is discussed in the "ALLOW STATIC
@@ -74,6 +80,12 @@
#define WUFFS_BASE__MAYBE_STATIC
#endif
+#if defined(__clang__)
+#define WUFFS_BASE__POTENTIALLY_UNUSED_FIELD __attribute__((unused))
+#else
+#define WUFFS_BASE__POTENTIALLY_UNUSED_FIELD
+#endif
+
// Clang also defines "__GNUC__".
#if defined(__GNUC__)
#define WUFFS_BASE__POTENTIALLY_UNUSED __attribute__((unused))
@@ -284,57 +296,57 @@
static inline uint8_t //
wuffs_base__u8__sat_add(uint8_t x, uint8_t y) {
- uint8_t res = x + y;
- res |= -(res < x);
+ uint8_t res = (uint8_t)(x + y);
+ res |= (uint8_t)(-(res < x));
return res;
}
static inline uint8_t //
wuffs_base__u8__sat_sub(uint8_t x, uint8_t y) {
- uint8_t res = x - y;
- res &= -(res <= x);
+ uint8_t res = (uint8_t)(x - y);
+ res &= (uint8_t)(-(res <= x));
return res;
}
static inline uint16_t //
wuffs_base__u16__sat_add(uint16_t x, uint16_t y) {
- uint16_t res = x + y;
- res |= -(res < x);
+ uint16_t res = (uint16_t)(x + y);
+ res |= (uint16_t)(-(res < x));
return res;
}
static inline uint16_t //
wuffs_base__u16__sat_sub(uint16_t x, uint16_t y) {
- uint16_t res = x - y;
- res &= -(res <= x);
+ uint16_t res = (uint16_t)(x - y);
+ res &= (uint16_t)(-(res <= x));
return res;
}
static inline uint32_t //
wuffs_base__u32__sat_add(uint32_t x, uint32_t y) {
- uint32_t res = x + y;
- res |= -(res < x);
+ uint32_t res = (uint32_t)(x + y);
+ res |= (uint32_t)(-(res < x));
return res;
}
static inline uint32_t //
wuffs_base__u32__sat_sub(uint32_t x, uint32_t y) {
- uint32_t res = x - y;
- res &= -(res <= x);
+ uint32_t res = (uint32_t)(x - y);
+ res &= (uint32_t)(-(res <= x));
return res;
}
static inline uint64_t //
wuffs_base__u64__sat_add(uint64_t x, uint64_t y) {
- uint64_t res = x + y;
- res |= -(res < x);
+ uint64_t res = (uint64_t)(x + y);
+ res |= (uint64_t)(-(res < x));
return res;
}
static inline uint64_t //
wuffs_base__u64__sat_sub(uint64_t x, uint64_t y) {
- uint64_t res = x - y;
- res &= -(res <= x);
+ uint64_t res = (uint64_t)(x - y);
+ res &= (uint64_t)(-(res <= x));
return res;
}
@@ -460,47 +472,6 @@
return wuffs_base__make_slice_u8(NULL, 0);
}
-// ---------------- Bureaucracy re -Wunused-function
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__core_public()
- WUFFS_BASE__POTENTIALLY_UNUSED;
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__core_public() {
- (void)(wuffs_base__make_empty_struct);
- (void)(wuffs_base__make_slice_u16);
- (void)(wuffs_base__make_slice_u32);
- (void)(wuffs_base__make_slice_u64);
- (void)(wuffs_base__make_slice_u8);
- (void)(wuffs_base__null_slice_u8);
- (void)(wuffs_base__null_table_u8);
- (void)(wuffs_base__slice_u8__subslice_i);
- (void)(wuffs_base__slice_u8__subslice_ij);
- (void)(wuffs_base__slice_u8__subslice_j);
- (void)(wuffs_base__status__is_complete);
- (void)(wuffs_base__status__is_error);
- (void)(wuffs_base__status__is_ok);
- (void)(wuffs_base__status__is_suspension);
- (void)(wuffs_base__status__is_warning);
- (void)(wuffs_base__u16__max);
- (void)(wuffs_base__u16__min);
- (void)(wuffs_base__u16__sat_add);
- (void)(wuffs_base__u16__sat_sub);
- (void)(wuffs_base__u32__max);
- (void)(wuffs_base__u32__min);
- (void)(wuffs_base__u32__sat_add);
- (void)(wuffs_base__u32__sat_sub);
- (void)(wuffs_base__u64__max);
- (void)(wuffs_base__u64__min);
- (void)(wuffs_base__u64__sat_add);
- (void)(wuffs_base__u64__sat_sub);
- (void)(wuffs_base__u8__max);
- (void)(wuffs_base__u8__min);
- (void)(wuffs_base__u8__sat_add);
- (void)(wuffs_base__u8__sat_sub);
-}
-
// ---------------- Ranges and Rects
// Ranges are either inclusive ("range_ii") or exclusive ("range_ie") on the
@@ -1285,62 +1256,6 @@
#endif // __cplusplus
-// ---------------- Bureaucracy re -Wunused-function
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__range_public()
- WUFFS_BASE__POTENTIALLY_UNUSED;
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__range_public() {
- (void)(wuffs_base__make_range_ie_u32);
- (void)(wuffs_base__make_range_ie_u64);
- (void)(wuffs_base__make_range_ii_u32);
- (void)(wuffs_base__make_range_ii_u64);
- (void)(wuffs_base__make_rect_ie_u32);
- (void)(wuffs_base__make_rect_ii_u32);
- (void)(wuffs_base__range_ie_u32__contains);
- (void)(wuffs_base__range_ie_u32__contains_range);
- (void)(wuffs_base__range_ie_u32__equals);
- (void)(wuffs_base__range_ie_u32__intersect);
- (void)(wuffs_base__range_ie_u32__is_empty);
- (void)(wuffs_base__range_ie_u32__length);
- (void)(wuffs_base__range_ie_u32__unite);
- (void)(wuffs_base__range_ie_u64__contains);
- (void)(wuffs_base__range_ie_u64__contains_range);
- (void)(wuffs_base__range_ie_u64__equals);
- (void)(wuffs_base__range_ie_u64__intersect);
- (void)(wuffs_base__range_ie_u64__is_empty);
- (void)(wuffs_base__range_ie_u64__length);
- (void)(wuffs_base__range_ie_u64__unite);
- (void)(wuffs_base__range_ii_u32__contains);
- (void)(wuffs_base__range_ii_u32__contains_range);
- (void)(wuffs_base__range_ii_u32__equals);
- (void)(wuffs_base__range_ii_u32__intersect);
- (void)(wuffs_base__range_ii_u32__is_empty);
- (void)(wuffs_base__range_ii_u32__unite);
- (void)(wuffs_base__range_ii_u64__contains);
- (void)(wuffs_base__range_ii_u64__contains_range);
- (void)(wuffs_base__range_ii_u64__equals);
- (void)(wuffs_base__range_ii_u64__intersect);
- (void)(wuffs_base__range_ii_u64__is_empty);
- (void)(wuffs_base__range_ii_u64__unite);
- (void)(wuffs_base__rect_ie_u32__contains);
- (void)(wuffs_base__rect_ie_u32__contains_rect);
- (void)(wuffs_base__rect_ie_u32__equals);
- (void)(wuffs_base__rect_ie_u32__height);
- (void)(wuffs_base__rect_ie_u32__intersect);
- (void)(wuffs_base__rect_ie_u32__is_empty);
- (void)(wuffs_base__rect_ie_u32__unite);
- (void)(wuffs_base__rect_ie_u32__width);
- (void)(wuffs_base__rect_ii_u32__contains);
- (void)(wuffs_base__rect_ie_u32__contains_rect);
- (void)(wuffs_base__rect_ii_u32__equals);
- (void)(wuffs_base__rect_ii_u32__intersect);
- (void)(wuffs_base__rect_ii_u32__is_empty);
- (void)(wuffs_base__rect_ii_u32__unite);
-}
-
// ---------------- I/O
struct wuffs_base__io_buffer__struct;
@@ -1533,27 +1448,6 @@
#endif // __cplusplus
-// ---------------- Bureaucracy re -Wunused-function
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__io_public()
- WUFFS_BASE__POTENTIALLY_UNUSED;
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__io_public() {
- (void)(wuffs_base__io_buffer__compact);
- (void)(wuffs_base__io_buffer__reader);
- (void)(wuffs_base__io_buffer__reader_io_position);
- (void)(wuffs_base__io_buffer__writer);
- (void)(wuffs_base__io_buffer__writer_io_position);
- (void)(wuffs_base__make_io_buffer);
- (void)(wuffs_base__make_io_buffer_meta);
- (void)(wuffs_base__null_io_buffer);
- (void)(wuffs_base__null_io_buffer_meta);
- (void)(wuffs_base__null_io_reader);
- (void)(wuffs_base__null_io_writer);
-}
-
// ---------------- Memory Allocation
// The memory allocation related functions in this section aren't used by Wuffs
@@ -1613,20 +1507,6 @@
return wuffs_base__make_slice_u64(NULL, 0);
}
-// ---------------- Bureaucracy re -Wunused-function
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__memory_public()
- WUFFS_BASE__POTENTIALLY_UNUSED;
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__memory_public() {
- (void)(wuffs_base__malloc_slice_u16);
- (void)(wuffs_base__malloc_slice_u32);
- (void)(wuffs_base__malloc_slice_u64);
- (void)(wuffs_base__malloc_slice_u8);
-}
-
// ---------------- Images
// wuffs_base__color_u32_argb_premul is an 8 bit per channel premultiplied
@@ -2723,63 +2603,14 @@
#endif // __cplusplus
-// ---------------- Bureaucracy re -Wunused-function
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__image_public()
- WUFFS_BASE__POTENTIALLY_UNUSED;
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__image_public() {
- (void)(wuffs_base__frame_config__blend);
- (void)(wuffs_base__frame_config__bounds);
- (void)(wuffs_base__frame_config__disposal);
- (void)(wuffs_base__frame_config__duration);
- (void)(wuffs_base__frame_config__height);
- (void)(wuffs_base__frame_config__index);
- (void)(wuffs_base__frame_config__io_position);
- (void)(wuffs_base__frame_config__update);
- (void)(wuffs_base__frame_config__width);
- (void)(wuffs_base__image_config__first_frame_io_position);
- (void)(wuffs_base__image_config__first_frame_is_opaque);
- (void)(wuffs_base__image_config__invalidate);
- (void)(wuffs_base__image_config__is_valid);
- (void)(wuffs_base__image_config__set);
- (void)(wuffs_base__null_frame_config());
- (void)(wuffs_base__null_image_config());
- (void)(wuffs_base__null_pixel_buffer());
- (void)(wuffs_base__null_pixel_config());
- (void)(wuffs_base__pixel_buffer__palette);
- (void)(wuffs_base__pixel_buffer__pixel_format);
- (void)(wuffs_base__pixel_buffer__plane);
- (void)(wuffs_base__pixel_buffer__set_from_slice);
- (void)(wuffs_base__pixel_config__bounds);
- (void)(wuffs_base__pixel_config__height);
- (void)(wuffs_base__pixel_config__invalidate);
- (void)(wuffs_base__pixel_config__is_valid);
- (void)(wuffs_base__pixel_config__pixbuf_len);
- (void)(wuffs_base__pixel_config__pixel_format);
- (void)(wuffs_base__pixel_config__pixel_subsampling);
- (void)(wuffs_base__pixel_config__set);
- (void)(wuffs_base__pixel_config__width);
- (void)(wuffs_base__pixel_format__bits_per_pixel);
- (void)(wuffs_base__pixel_format__is_indexed);
- (void)(wuffs_base__pixel_format__is_packed);
- (void)(wuffs_base__pixel_format__is_planar);
- (void)(wuffs_base__pixel_format__is_valid);
- (void)(wuffs_base__pixel_format__num_planes);
- (void)(wuffs_base__pixel_subsampling__bias_x);
- (void)(wuffs_base__pixel_subsampling__bias_y);
- (void)(wuffs_base__pixel_subsampling__shift_x);
- (void)(wuffs_base__pixel_subsampling__shift_y);
- (void)(wuffs_base__pixel_swizzler__prepare);
- (void)(wuffs_base__pixel_swizzler__swizzle_packed);
-}
-
#ifdef __cplusplus
} // extern "C"
#endif
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -2859,7 +2690,7 @@
union {
uint32_t align_as_per_magic_field;
uint8_t placeholder[1073741824]; // 1 GiB.
- } private_impl;
+ } private_impl WUFFS_BASE__POTENTIALLY_UNUSED_FIELD;
public:
@@ -2975,7 +2806,7 @@
union {
uint32_t align_as_per_magic_field;
uint8_t placeholder[1073741824]; // 1 GiB.
- } private_impl;
+ } private_impl WUFFS_BASE__POTENTIALLY_UNUSED_FIELD;
public:
@@ -3167,7 +2998,7 @@
union {
uint32_t align_as_per_magic_field;
uint8_t placeholder[1073741824]; // 1 GiB.
- } private_impl;
+ } private_impl WUFFS_BASE__POTENTIALLY_UNUSED_FIELD;
public:
@@ -3332,7 +3163,7 @@
union {
uint32_t align_as_per_magic_field;
uint8_t placeholder[1073741824]; // 1 GiB.
- } private_impl;
+ } private_impl WUFFS_BASE__POTENTIALLY_UNUSED_FIELD;
public:
@@ -3598,7 +3429,7 @@
union {
uint32_t align_as_per_magic_field;
uint8_t placeholder[1073741824]; // 1 GiB.
- } private_impl;
+ } private_impl WUFFS_BASE__POTENTIALLY_UNUSED_FIELD;
public:
@@ -3793,7 +3624,7 @@
union {
uint32_t align_as_per_magic_field;
uint8_t placeholder[1073741824]; // 1 GiB.
- } private_impl;
+ } private_impl WUFFS_BASE__POTENTIALLY_UNUSED_FIELD;
public:
@@ -3951,7 +3782,7 @@
union {
uint32_t align_as_per_magic_field;
uint8_t placeholder[1073741824]; // 1 GiB.
- } private_impl;
+ } private_impl WUFFS_BASE__POTENTIALLY_UNUSED_FIELD;
public:
@@ -4004,6 +3835,12 @@
// WUFFS C HEADER ENDS HERE.
#ifdef WUFFS_IMPLEMENTATION
+// GCC does not warn for unused *static inline* functions, but clang does.
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-function"
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -4029,7 +3866,7 @@
// Denote intentional fallthroughs for -Wimplicit-fallthrough.
//
// The order matters here. Clang also defines "__GNUC__".
-#if defined(__clang__) && __cplusplus >= 201103L
+#if defined(__clang__) && defined(__cplusplus) && (__cplusplus >= 201103L)
#define WUFFS_BASE__FALLTHROUGH [[clang::fallthrough]]
#elif !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 7)
#define WUFFS_BASE__FALLTHROUGH __attribute__((fallthrough))
@@ -4086,12 +3923,12 @@
static inline uint16_t //
wuffs_base__load_u16be(uint8_t* p) {
- return ((uint16_t)(p[0]) << 8) | ((uint16_t)(p[1]) << 0);
+ return (uint16_t)(((uint16_t)(p[0]) << 8) | ((uint16_t)(p[1]) << 0));
}
static inline uint16_t //
wuffs_base__load_u16le(uint8_t* p) {
- return ((uint16_t)(p[0]) << 0) | ((uint16_t)(p[1]) << 8);
+ return (uint16_t)(((uint16_t)(p[0]) << 0) | ((uint16_t)(p[1]) << 8));
}
static inline uint32_t //
@@ -4187,128 +4024,128 @@
static inline void //
wuffs_base__store_u16be(uint8_t* p, uint16_t x) {
- p[0] = x >> 8;
- p[1] = x >> 0;
+ p[0] = (uint8_t)(x >> 8);
+ p[1] = (uint8_t)(x >> 0);
}
static inline void //
wuffs_base__store_u16le(uint8_t* p, uint16_t x) {
- p[0] = x >> 0;
- p[1] = x >> 8;
+ p[0] = (uint8_t)(x >> 0);
+ p[1] = (uint8_t)(x >> 8);
}
static inline void //
wuffs_base__store_u24be(uint8_t* p, uint32_t x) {
- p[0] = x >> 16;
- p[1] = x >> 8;
- p[2] = x >> 0;
+ p[0] = (uint8_t)(x >> 16);
+ p[1] = (uint8_t)(x >> 8);
+ p[2] = (uint8_t)(x >> 0);
}
static inline void //
wuffs_base__store_u24le(uint8_t* p, uint32_t x) {
- p[0] = x >> 0;
- p[1] = x >> 8;
- p[2] = x >> 16;
+ p[0] = (uint8_t)(x >> 0);
+ p[1] = (uint8_t)(x >> 8);
+ p[2] = (uint8_t)(x >> 16);
}
static inline void //
wuffs_base__store_u32be(uint8_t* p, uint32_t x) {
- p[0] = x >> 24;
- p[1] = x >> 16;
- p[2] = x >> 8;
- p[3] = x >> 0;
+ p[0] = (uint8_t)(x >> 24);
+ p[1] = (uint8_t)(x >> 16);
+ p[2] = (uint8_t)(x >> 8);
+ p[3] = (uint8_t)(x >> 0);
}
static inline void //
wuffs_base__store_u32le(uint8_t* p, uint32_t x) {
- p[0] = x >> 0;
- p[1] = x >> 8;
- p[2] = x >> 16;
- p[3] = x >> 24;
+ p[0] = (uint8_t)(x >> 0);
+ p[1] = (uint8_t)(x >> 8);
+ p[2] = (uint8_t)(x >> 16);
+ p[3] = (uint8_t)(x >> 24);
}
static inline void //
wuffs_base__store_u40be(uint8_t* p, uint64_t x) {
- p[0] = x >> 32;
- p[1] = x >> 24;
- p[2] = x >> 16;
- p[3] = x >> 8;
- p[4] = x >> 0;
+ p[0] = (uint8_t)(x >> 32);
+ p[1] = (uint8_t)(x >> 24);
+ p[2] = (uint8_t)(x >> 16);
+ p[3] = (uint8_t)(x >> 8);
+ p[4] = (uint8_t)(x >> 0);
}
static inline void //
wuffs_base__store_u40le(uint8_t* p, uint64_t x) {
- p[0] = x >> 0;
- p[1] = x >> 8;
- p[2] = x >> 16;
- p[3] = x >> 24;
- p[4] = x >> 32;
+ p[0] = (uint8_t)(x >> 0);
+ p[1] = (uint8_t)(x >> 8);
+ p[2] = (uint8_t)(x >> 16);
+ p[3] = (uint8_t)(x >> 24);
+ p[4] = (uint8_t)(x >> 32);
}
static inline void //
wuffs_base__store_u48be(uint8_t* p, uint64_t x) {
- p[0] = x >> 40;
- p[1] = x >> 32;
- p[2] = x >> 24;
- p[3] = x >> 16;
- p[4] = x >> 8;
- p[5] = x >> 0;
+ p[0] = (uint8_t)(x >> 40);
+ p[1] = (uint8_t)(x >> 32);
+ p[2] = (uint8_t)(x >> 24);
+ p[3] = (uint8_t)(x >> 16);
+ p[4] = (uint8_t)(x >> 8);
+ p[5] = (uint8_t)(x >> 0);
}
static inline void //
wuffs_base__store_u48le(uint8_t* p, uint64_t x) {
- p[0] = x >> 0;
- p[1] = x >> 8;
- p[2] = x >> 16;
- p[3] = x >> 24;
- p[4] = x >> 32;
- p[5] = x >> 40;
+ p[0] = (uint8_t)(x >> 0);
+ p[1] = (uint8_t)(x >> 8);
+ p[2] = (uint8_t)(x >> 16);
+ p[3] = (uint8_t)(x >> 24);
+ p[4] = (uint8_t)(x >> 32);
+ p[5] = (uint8_t)(x >> 40);
}
static inline void //
wuffs_base__store_u56be(uint8_t* p, uint64_t x) {
- p[0] = x >> 48;
- p[1] = x >> 40;
- p[2] = x >> 32;
- p[3] = x >> 24;
- p[4] = x >> 16;
- p[5] = x >> 8;
- p[6] = x >> 0;
+ p[0] = (uint8_t)(x >> 48);
+ p[1] = (uint8_t)(x >> 40);
+ p[2] = (uint8_t)(x >> 32);
+ p[3] = (uint8_t)(x >> 24);
+ p[4] = (uint8_t)(x >> 16);
+ p[5] = (uint8_t)(x >> 8);
+ p[6] = (uint8_t)(x >> 0);
}
static inline void //
wuffs_base__store_u56le(uint8_t* p, uint64_t x) {
- p[0] = x >> 0;
- p[1] = x >> 8;
- p[2] = x >> 16;
- p[3] = x >> 24;
- p[4] = x >> 32;
- p[5] = x >> 40;
- p[6] = x >> 48;
+ p[0] = (uint8_t)(x >> 0);
+ p[1] = (uint8_t)(x >> 8);
+ p[2] = (uint8_t)(x >> 16);
+ p[3] = (uint8_t)(x >> 24);
+ p[4] = (uint8_t)(x >> 32);
+ p[5] = (uint8_t)(x >> 40);
+ p[6] = (uint8_t)(x >> 48);
}
static inline void //
wuffs_base__store_u64be(uint8_t* p, uint64_t x) {
- p[0] = x >> 56;
- p[1] = x >> 48;
- p[2] = x >> 40;
- p[3] = x >> 32;
- p[4] = x >> 24;
- p[5] = x >> 16;
- p[6] = x >> 8;
- p[7] = x >> 0;
+ p[0] = (uint8_t)(x >> 56);
+ p[1] = (uint8_t)(x >> 48);
+ p[2] = (uint8_t)(x >> 40);
+ p[3] = (uint8_t)(x >> 32);
+ p[4] = (uint8_t)(x >> 24);
+ p[5] = (uint8_t)(x >> 16);
+ p[6] = (uint8_t)(x >> 8);
+ p[7] = (uint8_t)(x >> 0);
}
static inline void //
wuffs_base__store_u64le(uint8_t* p, uint64_t x) {
- p[0] = x >> 0;
- p[1] = x >> 8;
- p[2] = x >> 16;
- p[3] = x >> 24;
- p[4] = x >> 32;
- p[5] = x >> 40;
- p[6] = x >> 48;
- p[7] = x >> 56;
+ p[0] = (uint8_t)(x >> 0);
+ p[1] = (uint8_t)(x >> 8);
+ p[2] = (uint8_t)(x >> 16);
+ p[3] = (uint8_t)(x >> 24);
+ p[4] = (uint8_t)(x >> 32);
+ p[5] = (uint8_t)(x >> 40);
+ p[6] = (uint8_t)(x >> 48);
+ p[7] = (uint8_t)(x >> 56);
}
// --------
@@ -4415,59 +4252,6 @@
#define wuffs_base__utility__null_slice_u8 wuffs_base__null_slice_u8
-// ---------------- Bureaucracy re -Wunused-function
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__core_private()
- WUFFS_BASE__POTENTIALLY_UNUSED;
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__core_private() {
- (void)(wuffs_base__ignore_status);
- (void)(wuffs_base__load_u16be);
- (void)(wuffs_base__load_u16le);
- (void)(wuffs_base__load_u24be);
- (void)(wuffs_base__load_u24le);
- (void)(wuffs_base__load_u32be);
- (void)(wuffs_base__load_u32le);
- (void)(wuffs_base__load_u40be);
- (void)(wuffs_base__load_u40le);
- (void)(wuffs_base__load_u48be);
- (void)(wuffs_base__load_u48le);
- (void)(wuffs_base__load_u56be);
- (void)(wuffs_base__load_u56le);
- (void)(wuffs_base__load_u64be);
- (void)(wuffs_base__load_u64le);
- (void)(wuffs_base__load_u8be);
- (void)(wuffs_base__slice_u8__copy_from_slice);
- (void)(wuffs_base__slice_u8__prefix);
- (void)(wuffs_base__slice_u8__suffix);
- (void)(wuffs_base__store_u16be);
- (void)(wuffs_base__store_u16le);
- (void)(wuffs_base__store_u24be);
- (void)(wuffs_base__store_u24le);
- (void)(wuffs_base__store_u32be);
- (void)(wuffs_base__store_u32le);
- (void)(wuffs_base__store_u40be);
- (void)(wuffs_base__store_u40le);
- (void)(wuffs_base__store_u48be);
- (void)(wuffs_base__store_u48le);
- (void)(wuffs_base__store_u56be);
- (void)(wuffs_base__store_u56le);
- (void)(wuffs_base__store_u64be);
- (void)(wuffs_base__store_u64le);
- (void)(wuffs_base__store_u8be);
- (void)(wuffs_base__table_u8__row);
- (void)(wuffs_base__u16__sat_add_indirect);
- (void)(wuffs_base__u16__sat_sub_indirect);
- (void)(wuffs_base__u32__sat_add_indirect);
- (void)(wuffs_base__u32__sat_sub_indirect);
- (void)(wuffs_base__u64__sat_add_indirect);
- (void)(wuffs_base__u64__sat_sub_indirect);
- (void)(wuffs_base__u8__sat_add_indirect);
- (void)(wuffs_base__u8__sat_sub_indirect);
-}
-
// ---------------- Ranges and Rects
static inline uint32_t //
@@ -4519,24 +4303,6 @@
#define wuffs_base__utility__make_rect_ii_u32 wuffs_base__make_rect_ii_u32
#define wuffs_base__utility__make_rect_ie_u32 wuffs_base__make_rect_ie_u32
-// ---------------- Bureaucracy re -Wunused-function
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__range_private()
- WUFFS_BASE__POTENTIALLY_UNUSED;
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__range_private() {
- (void)(wuffs_base__range_ie_u32__get_max_excl);
- (void)(wuffs_base__range_ie_u32__get_min_incl);
- (void)(wuffs_base__range_ie_u64__get_max_excl);
- (void)(wuffs_base__range_ie_u64__get_min_incl);
- (void)(wuffs_base__range_ii_u32__get_max_incl);
- (void)(wuffs_base__range_ii_u32__get_min_incl);
- (void)(wuffs_base__range_ii_u64__get_max_incl);
- (void)(wuffs_base__range_ii_u64__get_min_incl);
-}
-
// ---------------- I/O
static inline bool //
@@ -4597,11 +4363,11 @@
return 0;
}
uint8_t* q = p - distance;
- size_t n = io1_w - p;
+ size_t n = (size_t)(io1_w - p);
if ((size_t)(length) > n) {
- length = n;
+ length = (uint32_t)(n);
} else {
- n = length;
+ n = (size_t)(length);
}
// TODO: unrolling by 3 seems best for the std/deflate benchmarks, but that
// is mostly because 3 is the minimum length for the deflate format. This
@@ -4661,18 +4427,18 @@
uint8_t* iop_w = *ptr_iop_w;
size_t n = length;
if (n > ((size_t)(io1_w - iop_w))) {
- n = io1_w - iop_w;
+ n = (size_t)(io1_w - iop_w);
}
uint8_t* iop_r = *ptr_iop_r;
if (n > ((size_t)(io1_r - iop_r))) {
- n = io1_r - iop_r;
+ n = (size_t)(io1_r - iop_r);
}
if (n > 0) {
memmove(iop_w, iop_r, n);
*ptr_iop_w += n;
*ptr_iop_r += n;
}
- return n;
+ return (uint32_t)(n);
}
static inline uint64_t //
@@ -4682,13 +4448,13 @@
uint8_t* iop_w = *ptr_iop_w;
size_t n = src.len;
if (n > ((size_t)(io1_w - iop_w))) {
- n = io1_w - iop_w;
+ n = (size_t)(io1_w - iop_w);
}
if (n > 0) {
memmove(iop_w, src.ptr, n);
*ptr_iop_w += n;
}
- return n;
+ return (uint64_t)(n);
}
static inline uint32_t //
@@ -4702,13 +4468,13 @@
n = length;
}
if (n > ((size_t)(io1_w - iop_w))) {
- n = io1_w - iop_w;
+ n = (size_t)(io1_w - iop_w);
}
if (n > 0) {
memmove(iop_w, src.ptr, n);
*ptr_iop_w += n;
}
- return n;
+ return (uint32_t)(n);
}
static inline wuffs_base__empty_struct //
@@ -4803,31 +4569,6 @@
#define wuffs_base__utility__null_io_reader wuffs_base__null_io_reader
#define wuffs_base__utility__null_io_writer wuffs_base__null_io_writer
-// ---------------- Bureaucracy re -Wunused-function
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__io_private()
- WUFFS_BASE__POTENTIALLY_UNUSED;
-
-static inline void
-wuffs_base__acknowledge_potentially_unused_functions__io_private() {
- (void)(wuffs_base__io_buffer__is_valid);
- (void)(wuffs_base__io_reader__is_eof);
- (void)(wuffs_base__io_reader__is_valid);
- (void)(wuffs_base__io_reader__set);
- (void)(wuffs_base__io_reader__set_limit);
- (void)(wuffs_base__io_reader__set_mark);
- (void)(wuffs_base__io_reader__take);
- (void)(wuffs_base__io_writer__copy_from_slice);
- (void)(wuffs_base__io_writer__copy_n_from_history);
- (void)(wuffs_base__io_writer__copy_n_from_history_fast);
- (void)(wuffs_base__io_writer__copy_n_from_reader);
- (void)(wuffs_base__io_writer__copy_n_from_slice);
- (void)(wuffs_base__io_writer__is_valid);
- (void)(wuffs_base__io_writer__set);
- (void)(wuffs_base__io_writer__set_mark);
-}
-
// ---------------- Memory Allocation
// ---------------- Images
@@ -4948,7 +4689,7 @@
s += 1 * N;
d += 4 * N;
- n -= 1 * N;
+ n -= (size_t)(1 * N);
}
while (n >= 1) {
@@ -4958,7 +4699,7 @@
s += 1 * 1;
d += 4 * 1;
- n -= 1 * 1;
+ n -= (size_t)(1 * 1);
}
return len;
@@ -5062,6 +4803,10 @@
} // extern "C"
#endif
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
#if !defined(WUFFS_CONFIG__MODULES) || defined(WUFFS_CONFIG__MODULE__ADLER32)
// ---------------- Status Codes Implementations
@@ -6337,6 +6082,10 @@
wuffs_deflate__huffs_table_size //
WUFFS_BASE__POTENTIALLY_UNUSED = 1024;
+static const uint32_t //
+ wuffs_deflate__huffs_table_mask //
+ WUFFS_BASE__POTENTIALLY_UNUSED = 1023;
+
// ---------------- Private Initializer Prototypes
// ---------------- Private Function Prototypes
@@ -6501,7 +6250,7 @@
{
if (a_dst.private_impl.buf) {
a_dst.private_impl.buf->meta.wi =
- iop_a_dst - a_dst.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_dst - a_dst.private_impl.buf->data.ptr));
}
wuffs_base__status t_0 =
wuffs_deflate__decoder__decode_blocks(self, a_dst, a_src);
@@ -6572,7 +6321,7 @@
exit:
if (a_dst.private_impl.buf) {
a_dst.private_impl.buf->meta.wi =
- iop_a_dst - a_dst.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_dst - a_dst.private_impl.buf->data.ptr));
}
if (wuffs_base__status__is_error(status)) {
@@ -6638,7 +6387,7 @@
if (v_type == 0) {
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(2);
status =
@@ -6666,7 +6415,7 @@
} else if (v_type == 2) {
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(3);
status = wuffs_deflate__decoder__init_dynamic_huffman(self, a_src);
@@ -6685,7 +6434,7 @@
while (true) {
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
v_status =
wuffs_deflate__decoder__decode_huffman_fast(self, a_dst, a_src);
@@ -6702,7 +6451,7 @@
}
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(4);
status =
@@ -6735,7 +6484,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -6815,12 +6564,12 @@
}
uint64_t* scratch =
&self->private_data.s_decode_uncompressed[0].scratch;
- uint32_t num_bits_0 = *scratch >> 56;
+ uint32_t num_bits_0 = ((uint32_t)(*scratch >> 56));
*scratch <<= 8;
*scratch >>= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << num_bits_0;
if (num_bits_0 == 24) {
- t_0 = *scratch;
+ t_0 = ((uint32_t)(*scratch));
break;
}
num_bits_0 += 8;
@@ -6866,11 +6615,11 @@
exit:
if (a_dst.private_impl.buf) {
a_dst.private_impl.buf->meta.wi =
- iop_a_dst - a_dst.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_dst - a_dst.private_impl.buf->data.ptr));
}
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -7165,7 +6914,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -7209,7 +6958,14 @@
if (v_counts[(self->private_data.f_code_lengths[v_i] & 15)] >= 320) {
return wuffs_deflate__error__internal_error_inconsistent_huffman_decoder_state;
}
+#if defined(__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
v_counts[(self->private_data.f_code_lengths[v_i] & 15)] += 1;
+#if defined(__GNUC__)
+#pragma GCC diagnostic pop
+#endif
v_i += 1;
}
if ((((uint32_t)(v_counts[0])) + a_n_codes0) == a_n_codes1) {
@@ -7255,7 +7011,14 @@
}
v_symbols[v_offsets[(self->private_data.f_code_lengths[v_i] & 15)]] =
((uint16_t)((v_i - a_n_codes0)));
+#if defined(__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
v_offsets[(self->private_data.f_code_lengths[v_i] & 15)] += 1;
+#if defined(__GNUC__)
+#pragma GCC diagnostic pop
+#endif
}
v_i += 1;
}
@@ -7362,7 +7125,14 @@
if ((v_key >= 512) || (v_counts[v_prev_cl] <= 0)) {
return wuffs_deflate__error__internal_error_inconsistent_huffman_decoder_state;
}
+#if defined(__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
v_counts[v_prev_cl] -= 1;
+#if defined(__GNUC__)
+#pragma GCC diagnostic pop
+#endif
v_reversed_key = (((uint32_t)(wuffs_deflate__reverse8[(v_key >> 1)])) |
((v_key & 1) << 8));
v_reversed_key >>= (9 - v_cl);
@@ -7505,13 +7275,9 @@
}
v_redir_top = ((v_table_entry >> 8) & 65535);
v_redir_mask = ((((uint32_t)(1)) << ((v_table_entry >> 4) & 15)) - 1);
- if ((v_redir_top + (v_bits & v_redir_mask)) >= 1024) {
- status =
- wuffs_deflate__error__internal_error_inconsistent_huffman_decoder_state;
- goto exit;
- }
- v_table_entry = self->private_data
- .f_huffs[0][(v_redir_top + (v_bits & v_redir_mask))];
+ v_table_entry =
+ self->private_data
+ .f_huffs[0][((v_redir_top + (v_bits & v_redir_mask)) & 1023)];
v_table_entry_n_bits = (v_table_entry & 15);
v_bits >>= v_table_entry_n_bits;
v_n_bits -= v_table_entry_n_bits;
@@ -7590,13 +7356,9 @@
}
v_redir_top = ((v_table_entry >> 8) & 65535);
v_redir_mask = ((((uint32_t)(1)) << ((v_table_entry >> 4) & 15)) - 1);
- if ((v_redir_top + (v_bits & v_redir_mask)) >= 1024) {
- status =
- wuffs_deflate__error__internal_error_inconsistent_huffman_decoder_state;
- goto exit;
- }
- v_table_entry = self->private_data
- .f_huffs[1][(v_redir_top + (v_bits & v_redir_mask))];
+ v_table_entry =
+ self->private_data
+ .f_huffs[1][((v_redir_top + (v_bits & v_redir_mask)) & 1023)];
v_table_entry_n_bits = (v_table_entry & 15);
v_bits >>= v_table_entry_n_bits;
v_n_bits -= v_table_entry_n_bits;
@@ -7701,11 +7463,11 @@
exit:
if (a_dst.private_impl.buf) {
a_dst.private_impl.buf->meta.wi =
- iop_a_dst - a_dst.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_dst - a_dst.private_impl.buf->data.ptr));
}
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -7839,14 +7601,9 @@
v_redir_top = ((v_table_entry >> 8) & 65535);
v_redir_mask = ((((uint32_t)(1)) << ((v_table_entry >> 4) & 15)) - 1);
while (true) {
- if ((v_redir_top + (v_bits & v_redir_mask)) >= 1024) {
- status =
- wuffs_deflate__error__internal_error_inconsistent_huffman_decoder_state;
- goto exit;
- }
v_table_entry =
self->private_data
- .f_huffs[0][(v_redir_top + (v_bits & v_redir_mask))];
+ .f_huffs[0][((v_redir_top + (v_bits & v_redir_mask)) & 1023)];
v_table_entry_n_bits = (v_table_entry & 15);
if (v_n_bits >= v_table_entry_n_bits) {
v_bits >>= v_table_entry_n_bits;
@@ -7947,14 +7704,9 @@
v_redir_top = ((v_table_entry >> 8) & 65535);
v_redir_mask = ((((uint32_t)(1)) << ((v_table_entry >> 4) & 15)) - 1);
while (true) {
- if ((v_redir_top + (v_bits & v_redir_mask)) >= 1024) {
- status =
- wuffs_deflate__error__internal_error_inconsistent_huffman_decoder_state;
- goto exit;
- }
v_table_entry =
self->private_data
- .f_huffs[1][(v_redir_top + (v_bits & v_redir_mask))];
+ .f_huffs[1][((v_redir_top + (v_bits & v_redir_mask)) & 1023)];
v_table_entry_n_bits = (v_table_entry & 15);
if (v_n_bits >= v_table_entry_n_bits) {
v_bits >>= v_table_entry_n_bits;
@@ -8120,11 +7872,11 @@
exit:
if (a_dst.private_impl.buf) {
a_dst.private_impl.buf->meta.wi =
- iop_a_dst - a_dst.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_dst - a_dst.private_impl.buf->data.ptr));
}
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -8531,7 +8283,7 @@
self->private_impl.f_output_wi = v_output_wi;
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return wuffs_base__make_empty_struct();
@@ -8607,7 +8359,7 @@
exit:
if (a_dst.private_impl.buf) {
a_dst.private_impl.buf->meta.wi =
- iop_a_dst - a_dst.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_dst - a_dst.private_impl.buf->data.ptr));
}
return status;
@@ -9064,7 +8816,7 @@
self->private_impl.f_width),
wuffs_base__u32__min(self->private_impl.f_frame_rect_y1,
self->private_impl.f_height)),
- self->private_impl.f_gc_duration,
+ ((wuffs_base__flicks)(self->private_impl.f_gc_duration)),
self->private_impl.f_num_decoded_frame_configs_value,
self->private_impl.f_frame_config_io_position, v_blend,
self->private_impl.f_gc_disposal);
@@ -9137,7 +8889,8 @@
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(2);
if (self->private_data.s_skip_frame[0].scratch >
((uint64_t)(io1_a_src - iop_a_src))) {
- self->private_data.s_skip_frame[0].scratch -= io1_a_src - iop_a_src;
+ self->private_data.s_skip_frame[0].scratch -=
+ ((uint64_t)(io1_a_src - iop_a_src));
iop_a_src = io1_a_src;
status = wuffs_base__suspension__short_read;
goto suspend;
@@ -9152,7 +8905,7 @@
iop_a_src++;
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(4);
status = wuffs_gif__decoder__skip_blocks(self, a_src);
@@ -9181,7 +8934,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -9309,13 +9062,14 @@
(a_src.private_impl.buf
? wuffs_base__u64__sat_add(
a_src.private_impl.buf->meta.pos,
- iop_a_src - a_src.private_impl.buf->data.ptr)
+ ((uint64_t)(iop_a_src - a_src.private_impl.buf->data.ptr)))
: 0);
} else if (self->private_impl.f_frame_config_io_position !=
(a_src.private_impl.buf
? wuffs_base__u64__sat_add(
a_src.private_impl.buf->meta.pos,
- iop_a_src - a_src.private_impl.buf->data.ptr)
+ ((uint64_t)(iop_a_src -
+ a_src.private_impl.buf->data.ptr)))
: 0)) {
status = wuffs_base__error__bad_restart;
goto exit;
@@ -9335,7 +9089,7 @@
if (v_block_type == 33) {
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(2);
status = wuffs_gif__decoder__decode_extension(self, a_src);
@@ -9349,7 +9103,7 @@
} else if (v_block_type == 44) {
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(3);
status = wuffs_gif__decoder__decode_id_part0(self, a_src);
@@ -9385,7 +9139,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -9458,7 +9212,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -9516,7 +9270,7 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_lsd[0].scratch;
- uint32_t num_bits_0 = *scratch >> 56;
+ uint32_t num_bits_0 = ((uint32_t)(*scratch >> 56));
*scratch <<= 8;
*scratch >>= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << num_bits_0;
@@ -9545,7 +9299,7 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_lsd[0].scratch;
- uint32_t num_bits_1 = *scratch >> 56;
+ uint32_t num_bits_1 = ((uint32_t)(*scratch >> 56));
*scratch <<= 8;
*scratch >>= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << num_bits_1;
@@ -9572,7 +9326,8 @@
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(6);
if (self->private_data.s_decode_lsd[0].scratch >
((uint64_t)(io1_a_src - iop_a_src))) {
- self->private_data.s_decode_lsd[0].scratch -= io1_a_src - iop_a_src;
+ self->private_data.s_decode_lsd[0].scratch -=
+ ((uint64_t)(io1_a_src - iop_a_src));
iop_a_src = io1_a_src;
status = wuffs_base__suspension__short_read;
goto suspend;
@@ -9597,7 +9352,7 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_lsd[0].scratch;
- uint32_t num_bits_3 = *scratch & 0xFF;
+ uint32_t num_bits_3 = ((uint32_t)(*scratch & 0xFF));
*scratch >>= 8;
*scratch <<= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << (56 - num_bits_3);
@@ -9649,7 +9404,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -9697,7 +9452,7 @@
if (v_label == 249) {
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(2);
status = wuffs_gif__decoder__decode_gc(self, a_src);
@@ -9713,7 +9468,7 @@
} else if (v_label == 255) {
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(3);
status = wuffs_gif__decoder__decode_ae(self, a_src);
@@ -9729,7 +9484,7 @@
}
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(4);
status = wuffs_gif__decoder__skip_blocks(self, a_src);
@@ -9755,7 +9510,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -9809,7 +9564,8 @@
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(2);
if (self->private_data.s_skip_blocks[0].scratch >
((uint64_t)(io1_a_src - iop_a_src))) {
- self->private_data.s_skip_blocks[0].scratch -= io1_a_src - iop_a_src;
+ self->private_data.s_skip_blocks[0].scratch -=
+ ((uint64_t)(io1_a_src - iop_a_src));
iop_a_src = io1_a_src;
status = wuffs_base__suspension__short_read;
goto suspend;
@@ -9831,7 +9587,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -9892,7 +9648,8 @@
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(2);
if (self->private_data.s_decode_ae[0].scratch >
((uint64_t)(io1_a_src - iop_a_src))) {
- self->private_data.s_decode_ae[0].scratch -= io1_a_src - iop_a_src;
+ self->private_data.s_decode_ae[0].scratch -=
+ ((uint64_t)(io1_a_src - iop_a_src));
iop_a_src = io1_a_src;
status = wuffs_base__suspension__short_read;
goto suspend;
@@ -9917,7 +9674,14 @@
(v_not_animexts || (v_c != wuffs_gif__animexts1dot0[v_block_size]));
v_not_netscape =
(v_not_netscape || (v_c != wuffs_gif__netscape2dot0[v_block_size]));
+#if defined(__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
v_block_size += 1;
+#if defined(__GNUC__)
+#pragma GCC diagnostic pop
+#endif
}
if (v_not_animexts && v_not_netscape) {
goto label_0_break;
@@ -9936,7 +9700,8 @@
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(5);
if (self->private_data.s_decode_ae[0].scratch >
((uint64_t)(io1_a_src - iop_a_src))) {
- self->private_data.s_decode_ae[0].scratch -= io1_a_src - iop_a_src;
+ self->private_data.s_decode_ae[0].scratch -=
+ ((uint64_t)(io1_a_src - iop_a_src));
iop_a_src = io1_a_src;
status = wuffs_base__suspension__short_read;
goto suspend;
@@ -9958,7 +9723,8 @@
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(7);
if (self->private_data.s_decode_ae[0].scratch >
((uint64_t)(io1_a_src - iop_a_src))) {
- self->private_data.s_decode_ae[0].scratch -= io1_a_src - iop_a_src;
+ self->private_data.s_decode_ae[0].scratch -=
+ ((uint64_t)(io1_a_src - iop_a_src));
iop_a_src = io1_a_src;
status = wuffs_base__suspension__short_read;
goto suspend;
@@ -9981,7 +9747,7 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_ae[0].scratch;
- uint32_t num_bits_4 = *scratch >> 56;
+ uint32_t num_bits_4 = ((uint32_t)(*scratch >> 56));
*scratch <<= 8;
*scratch >>= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << num_bits_4;
@@ -10005,7 +9771,7 @@
label_0_break:;
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(10);
status = wuffs_gif__decoder__skip_blocks(self, a_src);
@@ -10034,7 +9800,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -10122,12 +9888,12 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_gc[0].scratch;
- uint32_t num_bits_2 = *scratch >> 56;
+ uint32_t num_bits_2 = ((uint32_t)(*scratch >> 56));
*scratch <<= 8;
*scratch >>= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << num_bits_2;
if (num_bits_2 == 8) {
- t_2 = *scratch;
+ t_2 = ((uint16_t)(*scratch));
break;
}
num_bits_2 += 8;
@@ -10176,7 +9942,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -10225,7 +9991,7 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_id_part0[0].scratch;
- uint32_t num_bits_0 = *scratch >> 56;
+ uint32_t num_bits_0 = ((uint32_t)(*scratch >> 56));
*scratch <<= 8;
*scratch >>= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << num_bits_0;
@@ -10254,7 +10020,7 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_id_part0[0].scratch;
- uint32_t num_bits_1 = *scratch >> 56;
+ uint32_t num_bits_1 = ((uint32_t)(*scratch >> 56));
*scratch <<= 8;
*scratch >>= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << num_bits_1;
@@ -10283,7 +10049,7 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_id_part0[0].scratch;
- uint32_t num_bits_2 = *scratch >> 56;
+ uint32_t num_bits_2 = ((uint32_t)(*scratch >> 56));
*scratch <<= 8;
*scratch >>= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << num_bits_2;
@@ -10313,7 +10079,7 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_id_part0[0].scratch;
- uint32_t num_bits_3 = *scratch >> 56;
+ uint32_t num_bits_3 = ((uint32_t)(*scratch >> 56));
*scratch <<= 8;
*scratch >>= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << num_bits_3;
@@ -10351,7 +10117,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -10431,7 +10197,7 @@
}
uint64_t* scratch =
&self->private_data.s_decode_id_part1[0].scratch;
- uint32_t num_bits_1 = *scratch & 0xFF;
+ uint32_t num_bits_1 = ((uint32_t)(*scratch & 0xFF));
*scratch >>= 8;
*scratch <<= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << (56 - num_bits_1);
@@ -10535,7 +10301,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -10667,7 +10433,7 @@
self->private_impl.f_compressed_ri,
self->private_impl.f_compressed_wi));
{
- u_r.meta.ri = iop_v_r - u_r.data.ptr;
+ u_r.meta.ri = ((size_t)(iop_v_r - u_r.data.ptr));
wuffs_base__status t_1 = wuffs_lzw__decoder__decode_io_writer(
&self->private_data.f_lzw,
wuffs_base__utility__null_io_writer(), v_r,
@@ -10700,7 +10466,7 @@
if (self->private_data.s_decode_id_part2[0].scratch >
((uint64_t)(io1_a_src - iop_a_src))) {
self->private_data.s_decode_id_part2[0].scratch -=
- io1_a_src - iop_a_src;
+ ((uint64_t)(io1_a_src - iop_a_src));
iop_a_src = io1_a_src;
status = wuffs_base__suspension__short_read;
goto suspend;
@@ -10708,7 +10474,7 @@
iop_a_src += self->private_data.s_decode_id_part2[0].scratch;
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(4);
status = wuffs_gif__decoder__skip_blocks(self, a_src);
@@ -10765,7 +10531,7 @@
exit:
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
return status;
@@ -10834,7 +10600,14 @@
while (
(self->private_impl.f_interlace > 0) &&
(self->private_impl.f_dst_y >= self->private_impl.f_frame_rect_y1)) {
+#if defined(__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
self->private_impl.f_interlace -= 1;
+#if defined(__GNUC__)
+#pragma GCC diagnostic pop
+#endif
self->private_impl.f_dst_y = wuffs_base__u32__sat_add(
self->private_impl.f_frame_rect_y0,
wuffs_gif__interlace_start[self->private_impl.f_interlace]);
@@ -10861,7 +10634,14 @@
while (
(self->private_impl.f_interlace > 0) &&
(self->private_impl.f_dst_y >= self->private_impl.f_frame_rect_y1)) {
+#if defined(__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wconversion"
+#endif
self->private_impl.f_interlace -= 1;
+#if defined(__GNUC__)
+#pragma GCC diagnostic pop
+#endif
self->private_impl.f_dst_y = wuffs_base__u32__sat_add(
self->private_impl.f_frame_rect_y0,
wuffs_gif__interlace_start[self->private_impl.f_interlace]);
@@ -11122,7 +10902,8 @@
WUFFS_BASE__COROUTINE_SUSPENSION_POINT(5);
if (self->private_data.s_decode_io_writer[0].scratch >
((uint64_t)(io1_a_src - iop_a_src))) {
- self->private_data.s_decode_io_writer[0].scratch -= io1_a_src - iop_a_src;
+ self->private_data.s_decode_io_writer[0].scratch -=
+ ((uint64_t)(io1_a_src - iop_a_src));
iop_a_src = io1_a_src;
status = wuffs_base__suspension__short_read;
goto suspend;
@@ -11145,12 +10926,12 @@
}
uint64_t* scratch =
&self->private_data.s_decode_io_writer[0].scratch;
- uint32_t num_bits_4 = *scratch >> 56;
+ uint32_t num_bits_4 = ((uint32_t)(*scratch >> 56));
*scratch <<= 8;
*scratch >>= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << num_bits_4;
if (num_bits_4 == 8) {
- t_4 = *scratch;
+ t_4 = ((uint16_t)(*scratch));
break;
}
num_bits_4 += 8;
@@ -11164,7 +10945,7 @@
if (self->private_data.s_decode_io_writer[0].scratch >
((uint64_t)(io1_a_src - iop_a_src))) {
self->private_data.s_decode_io_writer[0].scratch -=
- io1_a_src - iop_a_src;
+ ((uint64_t)(io1_a_src - iop_a_src));
iop_a_src = io1_a_src;
status = wuffs_base__suspension__short_read;
goto suspend;
@@ -11211,7 +10992,7 @@
if (self->private_data.s_decode_io_writer[0].scratch >
((uint64_t)(io1_a_src - iop_a_src))) {
self->private_data.s_decode_io_writer[0].scratch -=
- io1_a_src - iop_a_src;
+ ((uint64_t)(io1_a_src - iop_a_src));
iop_a_src = io1_a_src;
status = wuffs_base__suspension__short_read;
goto suspend;
@@ -11227,11 +11008,11 @@
{
if (a_dst.private_impl.buf) {
a_dst.private_impl.buf->meta.wi =
- iop_a_dst - a_dst.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_dst - a_dst.private_impl.buf->data.ptr));
}
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
wuffs_base__status t_7 = wuffs_deflate__decoder__decode_io_writer(
&self->private_data.f_flate, a_dst, a_src, a_workbuf);
@@ -11276,12 +11057,12 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_io_writer[0].scratch;
- uint32_t num_bits_8 = *scratch >> 56;
+ uint32_t num_bits_8 = ((uint32_t)(*scratch >> 56));
*scratch <<= 8;
*scratch >>= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << num_bits_8;
if (num_bits_8 == 24) {
- t_8 = *scratch;
+ t_8 = ((uint32_t)(*scratch));
break;
}
num_bits_8 += 8;
@@ -11305,12 +11086,12 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_io_writer[0].scratch;
- uint32_t num_bits_9 = *scratch >> 56;
+ uint32_t num_bits_9 = ((uint32_t)(*scratch >> 56));
*scratch <<= 8;
*scratch >>= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << num_bits_9;
if (num_bits_9 == 24) {
- t_9 = *scratch;
+ t_9 = ((uint32_t)(*scratch));
break;
}
num_bits_9 += 8;
@@ -11346,11 +11127,11 @@
exit:
if (a_dst.private_impl.buf) {
a_dst.private_impl.buf->meta.wi =
- iop_a_dst - a_dst.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_dst - a_dst.private_impl.buf->data.ptr));
}
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
if (wuffs_base__status__is_error(status)) {
@@ -11563,12 +11344,12 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_io_writer[0].scratch;
- uint32_t num_bits_0 = *scratch & 0xFF;
+ uint32_t num_bits_0 = ((uint32_t)(*scratch & 0xFF));
*scratch >>= 8;
*scratch <<= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << (56 - num_bits_0);
if (num_bits_0 == 8) {
- t_0 = *scratch >> 48;
+ t_0 = ((uint16_t)(*scratch >> 48));
break;
}
num_bits_0 += 8;
@@ -11598,11 +11379,11 @@
{
if (a_dst.private_impl.buf) {
a_dst.private_impl.buf->meta.wi =
- iop_a_dst - a_dst.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_dst - a_dst.private_impl.buf->data.ptr));
}
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
wuffs_base__status t_1 = wuffs_deflate__decoder__decode_io_writer(
&self->private_data.f_flate, a_dst, a_src, a_workbuf);
@@ -11645,12 +11426,12 @@
goto suspend;
}
uint64_t* scratch = &self->private_data.s_decode_io_writer[0].scratch;
- uint32_t num_bits_2 = *scratch & 0xFF;
+ uint32_t num_bits_2 = ((uint32_t)(*scratch & 0xFF));
*scratch >>= 8;
*scratch <<= 8;
*scratch |= ((uint64_t)(*iop_a_src++)) << (56 - num_bits_2);
if (num_bits_2 == 24) {
- t_2 = *scratch >> 32;
+ t_2 = ((uint32_t)(*scratch >> 32));
break;
}
num_bits_2 += 8;
@@ -11681,11 +11462,11 @@
exit:
if (a_dst.private_impl.buf) {
a_dst.private_impl.buf->meta.wi =
- iop_a_dst - a_dst.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_dst - a_dst.private_impl.buf->data.ptr));
}
if (a_src.private_impl.buf) {
a_src.private_impl.buf->meta.ri =
- iop_a_src - a_src.private_impl.buf->data.ptr;
+ ((size_t)(iop_a_src - a_src.private_impl.buf->data.ptr));
}
if (wuffs_base__status__is_error(status)) {