diff --git a/internal/cgen/base/all-impl.c b/internal/cgen/base/all-impl.c index 76d2cbd5d..8289d7196 100644 --- a/internal/cgen/base/all-impl.c +++ b/internal/cgen/base/all-impl.c @@ -30,6 +30,12 @@ #include #include +// 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 @@ -40,9 +46,19 @@ extern "C" { } // extern "C" #endif +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + // 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 @@ -105,6 +121,10 @@ const uint64_t wuffs_base__low_bits_mask__u64[65] = { } // extern "C" #endif +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + #endif // WUFFS_IMPLEMENTATION // !! WUFFS MONOLITHIC RELEASE DISCARDS EVERYTHING BELOW. diff --git a/internal/cgen/base/core-private.h b/internal/cgen/base/core-private.h index 64a53d8bf..d68803cff 100644 --- a/internal/cgen/base/core-private.h +++ b/internal/cgen/base/core-private.h @@ -420,56 +420,3 @@ wuffs_base__table_u8__row(wuffs_base__table_u8 t, uint32_t y) { // ---------------- Slices and Tables (Utility) #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); -} diff --git a/internal/cgen/base/core-public.h b/internal/cgen/base/core-public.h index e960d5457..311c2df48 100644 --- a/internal/cgen/base/core-public.h +++ b/internal/cgen/base/core-public.h @@ -425,44 +425,3 @@ wuffs_base__slice_u8__subslice_ij(wuffs_base__slice_u8 s, } 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); -} diff --git a/internal/cgen/base/image-public.h b/internal/cgen/base/image-public.h index c004f31b3..f452b3bba 100644 --- a/internal/cgen/base/image-public.h +++ b/internal/cgen/base/image-public.h @@ -1109,56 +1109,3 @@ wuffs_base__pixel_swizzler::swizzle_packed(wuffs_base__slice_u8 dst, } #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); -} diff --git a/internal/cgen/base/io-private.h b/internal/cgen/base/io-private.h index 7af3b5670..b8a1d8f11 100644 --- a/internal/cgen/base/io-private.h +++ b/internal/cgen/base/io-private.h @@ -279,28 +279,3 @@ wuffs_base__io_writer__set_mark(wuffs_base__io_writer* o, uint8_t* mark) { #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); -} diff --git a/internal/cgen/base/io-public.h b/internal/cgen/base/io-public.h index ac57438b6..6e9bb5896 100644 --- a/internal/cgen/base/io-public.h +++ b/internal/cgen/base/io-public.h @@ -205,24 +205,3 @@ wuffs_base__io_buffer__struct::writer_io_position() { } #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); -} diff --git a/internal/cgen/base/memory-public.h b/internal/cgen/base/memory-public.h index 5cf07d10e..03b73c9bf 100644 --- a/internal/cgen/base/memory-public.h +++ b/internal/cgen/base/memory-public.h @@ -72,17 +72,3 @@ wuffs_base__malloc_slice_u64(void* (*malloc_func)(size_t), uint64_t num_u64) { } 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); -} diff --git a/internal/cgen/base/range-private.h b/internal/cgen/base/range-private.h index 69c611047..fc861800f 100644 --- a/internal/cgen/base/range-private.h +++ b/internal/cgen/base/range-private.h @@ -65,20 +65,3 @@ wuffs_base__range_ie_u64__get_max_excl(const wuffs_base__range_ie_u64* r) { #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); -} diff --git a/internal/cgen/base/range-public.h b/internal/cgen/base/range-public.h index 70c7fe18f..69d6ecb72 100644 --- a/internal/cgen/base/range-public.h +++ b/internal/cgen/base/range-public.h @@ -797,59 +797,3 @@ wuffs_base__rect_ie_u32::height() { } #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); -} diff --git a/internal/cgen/data.go b/internal/cgen/data.go index 13a62bdfe..e81289efe 100644 --- a/internal/cgen/data.go +++ b/internal/cgen/data.go @@ -17,10 +17,10 @@ package cgen const baseAllImplC = "" + - "#ifndef WUFFS_INCLUDE_GUARD__BASE\n#define WUFFS_INCLUDE_GUARD__BASE\n\n#if defined(WUFFS_IMPLEMENTATION) && !defined(WUFFS_CONFIG__MODULES)\n#define WUFFS_CONFIG__MODULES\n#define WUFFS_CONFIG__MODULE__BASE\n#endif\n\n// !! WUFFS MONOLITHIC RELEASE DISCARDS EVERYTHING ABOVE.\n\n// !! INSERT base/copyright\n\n#include \n#include \n#include \n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n// !! INSERT base/all-public.h.\n\n#ifdef __cplusplus\n} // extern \"C\"\n#endif\n\n// WUFFS C HEADER ENDS HERE.\n#ifdef WUFFS_IMPLEMENTATION\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n// !! INSERT base/all-private.h.\n\n#if !defined(WUFFS_CONFIG__MODULES) || defined(WUFFS_CONFIG__MODULE__BASE)\n\nconst uint8_t wuffs_base__low_bits_mask__u8[9] = {\n 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF,\n};\n\nconst uint16_t wuffs_base__low_bits_mask__u16[17] = {\n 0x0000, 0x0001, 0x0003, 0x0007, 0x000F, 0x001F, 0x003F, 0x007F, 0x00FF,\n 0x01FF, 0x03FF, 0x07FF, 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF,\n};\n\nconst uint32_t wuffs_ba" + - "se__low_bits_mask__u32[33] = {\n 0x00000000, 0x00000001, 0x00000003, 0x00000007, 0x0000000F, 0x0000001F,\n 0x0000003F, 0x0000007F, 0x000000FF, 0x000001FF, 0x000003FF, 0x000007FF,\n 0x00000FFF, 0x00001FFF, 0x00003FFF, 0x00007FFF, 0x0000FFFF, 0x0001FFFF,\n 0x0003FFFF, 0x0007FFFF, 0x000FFFFF, 0x001FFFFF, 0x003FFFFF, 0x007FFFFF,\n 0x00FFFFFF, 0x01FFFFFF, 0x03FFFFFF, 0x07FFFFFF, 0x0FFFFFFF, 0x1FFFFFFF,\n 0x3FFFFFFF, 0x7FFFFFFF, 0xFFFFFFFF,\n};\n\nconst uint64_t wuffs_base__low_bits_mask__u64[65] = {\n 0x0000000000000000, 0x0000000000000001, 0x0000000000000003,\n 0x0000000000000007, 0x000000000000000F, 0x000000000000001F,\n 0x000000000000003F, 0x000000000000007F, 0x00000000000000FF,\n 0x00000000000001FF, 0x00000000000003FF, 0x00000000000007FF,\n 0x0000000000000FFF, 0x0000000000001FFF, 0x0000000000003FFF,\n 0x0000000000007FFF, 0x000000000000FFFF, 0x000000000001FFFF,\n 0x000000000003FFFF, 0x000000000007FFFF, 0x00000000000FFFFF,\n 0x00000000001FFFFF, 0x00000000003FFFFF, 0x00000000007FFFFF,\n " + - " 0x0000000000FFFFFF, 0x0000000001FFFFFF, 0x0000000003FFFFFF,\n 0x0000000007FFFFFF, 0x000000000FFFFFFF, 0x000000001FFFFFFF,\n 0x000000003FFFFFFF, 0x000000007FFFFFFF, 0x00000000FFFFFFFF,\n 0x00000001FFFFFFFF, 0x00000003FFFFFFFF, 0x00000007FFFFFFFF,\n 0x0000000FFFFFFFFF, 0x0000001FFFFFFFFF, 0x0000003FFFFFFFFF,\n 0x0000007FFFFFFFFF, 0x000000FFFFFFFFFF, 0x000001FFFFFFFFFF,\n 0x000003FFFFFFFFFF, 0x000007FFFFFFFFFF, 0x00000FFFFFFFFFFF,\n 0x00001FFFFFFFFFFF, 0x00003FFFFFFFFFFF, 0x00007FFFFFFFFFFF,\n 0x0000FFFFFFFFFFFF, 0x0001FFFFFFFFFFFF, 0x0003FFFFFFFFFFFF,\n 0x0007FFFFFFFFFFFF, 0x000FFFFFFFFFFFFF, 0x001FFFFFFFFFFFFF,\n 0x003FFFFFFFFFFFFF, 0x007FFFFFFFFFFFFF, 0x00FFFFFFFFFFFFFF,\n 0x01FFFFFFFFFFFFFF, 0x03FFFFFFFFFFFFFF, 0x07FFFFFFFFFFFFFF,\n 0x0FFFFFFFFFFFFFFF, 0x1FFFFFFFFFFFFFFF, 0x3FFFFFFFFFFFFFFF,\n 0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF,\n};\n\n// !! INSERT wuffs_base__status strings.\n\n// !! INSERT base/image-impl.c.\n\n#endif // !defined(WUFFS_CONFIG__MODULES) ||\n // defined(WUFFS_C" + - "ONFIG__MODULE__BASE)\n\n#ifdef __cplusplus\n} // extern \"C\"\n#endif\n\n#endif // WUFFS_IMPLEMENTATION\n\n// !! WUFFS MONOLITHIC RELEASE DISCARDS EVERYTHING BELOW.\n\n#endif // WUFFS_INCLUDE_GUARD__BASE\n" + + "#ifndef WUFFS_INCLUDE_GUARD__BASE\n#define WUFFS_INCLUDE_GUARD__BASE\n\n#if defined(WUFFS_IMPLEMENTATION) && !defined(WUFFS_CONFIG__MODULES)\n#define WUFFS_CONFIG__MODULES\n#define WUFFS_CONFIG__MODULE__BASE\n#endif\n\n// !! WUFFS MONOLITHIC RELEASE DISCARDS EVERYTHING ABOVE.\n\n// !! INSERT base/copyright\n\n#include \n#include \n#include \n\n// GCC does not warn for unused *static inline* functions, but clang does.\n#ifdef __clang__\n#pragma clang diagnostic push\n#pragma clang diagnostic ignored \"-Wunused-function\"\n#endif\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n// !! INSERT base/all-public.h.\n\n#ifdef __cplusplus\n} // extern \"C\"\n#endif\n\n#ifdef __clang__\n#pragma clang diagnostic pop\n#endif\n\n// WUFFS C HEADER ENDS HERE.\n#ifdef WUFFS_IMPLEMENTATION\n\n// GCC does not warn for unused *static inline* functions, but clang does.\n#ifdef __clang__\n#pragma clang diagnostic push\n#pragma clang diagnostic ignored \"-Wunused-function\"\n#endif\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n// !! INSERT base/all-privat" + + "e.h.\n\n#if !defined(WUFFS_CONFIG__MODULES) || defined(WUFFS_CONFIG__MODULE__BASE)\n\nconst uint8_t wuffs_base__low_bits_mask__u8[9] = {\n 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF,\n};\n\nconst uint16_t wuffs_base__low_bits_mask__u16[17] = {\n 0x0000, 0x0001, 0x0003, 0x0007, 0x000F, 0x001F, 0x003F, 0x007F, 0x00FF,\n 0x01FF, 0x03FF, 0x07FF, 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF,\n};\n\nconst uint32_t wuffs_base__low_bits_mask__u32[33] = {\n 0x00000000, 0x00000001, 0x00000003, 0x00000007, 0x0000000F, 0x0000001F,\n 0x0000003F, 0x0000007F, 0x000000FF, 0x000001FF, 0x000003FF, 0x000007FF,\n 0x00000FFF, 0x00001FFF, 0x00003FFF, 0x00007FFF, 0x0000FFFF, 0x0001FFFF,\n 0x0003FFFF, 0x0007FFFF, 0x000FFFFF, 0x001FFFFF, 0x003FFFFF, 0x007FFFFF,\n 0x00FFFFFF, 0x01FFFFFF, 0x03FFFFFF, 0x07FFFFFF, 0x0FFFFFFF, 0x1FFFFFFF,\n 0x3FFFFFFF, 0x7FFFFFFF, 0xFFFFFFFF,\n};\n\nconst uint64_t wuffs_base__low_bits_mask__u64[65] = {\n 0x0000000000000000, 0x0000000000000001, 0x0000000000000003,\n 0x0000000000000007, 0x00000" + + "0000000000F, 0x000000000000001F,\n 0x000000000000003F, 0x000000000000007F, 0x00000000000000FF,\n 0x00000000000001FF, 0x00000000000003FF, 0x00000000000007FF,\n 0x0000000000000FFF, 0x0000000000001FFF, 0x0000000000003FFF,\n 0x0000000000007FFF, 0x000000000000FFFF, 0x000000000001FFFF,\n 0x000000000003FFFF, 0x000000000007FFFF, 0x00000000000FFFFF,\n 0x00000000001FFFFF, 0x00000000003FFFFF, 0x00000000007FFFFF,\n 0x0000000000FFFFFF, 0x0000000001FFFFFF, 0x0000000003FFFFFF,\n 0x0000000007FFFFFF, 0x000000000FFFFFFF, 0x000000001FFFFFFF,\n 0x000000003FFFFFFF, 0x000000007FFFFFFF, 0x00000000FFFFFFFF,\n 0x00000001FFFFFFFF, 0x00000003FFFFFFFF, 0x00000007FFFFFFFF,\n 0x0000000FFFFFFFFF, 0x0000001FFFFFFFFF, 0x0000003FFFFFFFFF,\n 0x0000007FFFFFFFFF, 0x000000FFFFFFFFFF, 0x000001FFFFFFFFFF,\n 0x000003FFFFFFFFFF, 0x000007FFFFFFFFFF, 0x00000FFFFFFFFFFF,\n 0x00001FFFFFFFFFFF, 0x00003FFFFFFFFFFF, 0x00007FFFFFFFFFFF,\n 0x0000FFFFFFFFFFFF, 0x0001FFFFFFFFFFFF, 0x0003FFFFFFFFFFFF,\n 0x0007FFFFFFFFFFFF, 0x000FF" + + "FFFFFFFFFFF, 0x001FFFFFFFFFFFFF,\n 0x003FFFFFFFFFFFFF, 0x007FFFFFFFFFFFFF, 0x00FFFFFFFFFFFFFF,\n 0x01FFFFFFFFFFFFFF, 0x03FFFFFFFFFFFFFF, 0x07FFFFFFFFFFFFFF,\n 0x0FFFFFFFFFFFFFFF, 0x1FFFFFFFFFFFFFFF, 0x3FFFFFFFFFFFFFFF,\n 0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF,\n};\n\n// !! INSERT wuffs_base__status strings.\n\n// !! INSERT base/image-impl.c.\n\n#endif // !defined(WUFFS_CONFIG__MODULES) ||\n // defined(WUFFS_CONFIG__MODULE__BASE)\n\n#ifdef __cplusplus\n} // extern \"C\"\n#endif\n\n#ifdef __clang__\n#pragma clang diagnostic pop\n#endif\n\n#endif // WUFFS_IMPLEMENTATION\n\n// !! WUFFS MONOLITHIC RELEASE DISCARDS EVERYTHING BELOW.\n\n#endif // WUFFS_INCLUDE_GUARD__BASE\n" + "" const baseImageImplC = "" + @@ -54,10 +54,7 @@ const baseCorePrivateH = "" + "" + "// --------\n\nstatic inline wuffs_base__slice_u8 //\nwuffs_base__table_u8__row(wuffs_base__table_u8 t, uint32_t y) {\n if (y < t.height) {\n return wuffs_base__make_slice_u8(t.ptr + (t.stride * y), t.width);\n }\n return wuffs_base__make_slice_u8(NULL, 0);\n}\n\n" + "" + - "// ---------------- Slices and Tables (Utility)\n\n#define wuffs_base__utility__null_slice_u8 wuffs_base__null_slice_u8\n\n" + - "" + - "// ---------------- Bureaucracy re -Wunused-function\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__core_private()\n WUFFS_BASE__POTENTIALLY_UNUSED;\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__core_private() {\n (void)(wuffs_base__ignore_status);\n (void)(wuffs_base__load_u16be);\n (void)(wuffs_base__load_u16le);\n (void)(wuffs_base__load_u24be);\n (void)(wuffs_base__load_u24le);\n (void)(wuffs_base__load_u32be);\n (void)(wuffs_base__load_u32le);\n (void)(wuffs_base__load_u40be);\n (void)(wuffs_base__load_u40le);\n (void)(wuffs_base__load_u48be);\n (void)(wuffs_base__load_u48le);\n (void)(wuffs_base__load_u56be);\n (void)(wuffs_base__load_u56le);\n (void)(wuffs_base__load_u64be);\n (void)(wuffs_base__load_u64le);\n (void)(wuffs_base__load_u8be);\n (void)(wuffs_base__slice_u8__copy_from_slice);\n (void)(wuffs_base__slice_u8__prefix);\n (void)(wuffs_base__slice_u8__suffix);\n (void)(wuffs_base__store_u16be);\n (void)(wuffs_base__store_u16le);\n (void)(w" + - "uffs_base__store_u24be);\n (void)(wuffs_base__store_u24le);\n (void)(wuffs_base__store_u32be);\n (void)(wuffs_base__store_u32le);\n (void)(wuffs_base__store_u40be);\n (void)(wuffs_base__store_u40le);\n (void)(wuffs_base__store_u48be);\n (void)(wuffs_base__store_u48le);\n (void)(wuffs_base__store_u56be);\n (void)(wuffs_base__store_u56le);\n (void)(wuffs_base__store_u64be);\n (void)(wuffs_base__store_u64le);\n (void)(wuffs_base__store_u8be);\n (void)(wuffs_base__table_u8__row);\n (void)(wuffs_base__u16__sat_add_indirect);\n (void)(wuffs_base__u16__sat_sub_indirect);\n (void)(wuffs_base__u32__sat_add_indirect);\n (void)(wuffs_base__u32__sat_sub_indirect);\n (void)(wuffs_base__u64__sat_add_indirect);\n (void)(wuffs_base__u64__sat_sub_indirect);\n (void)(wuffs_base__u8__sat_add_indirect);\n (void)(wuffs_base__u8__sat_sub_indirect);\n}\n" + + "// ---------------- Slices and Tables (Utility)\n\n#define wuffs_base__utility__null_slice_u8 wuffs_base__null_slice_u8\n" + "" const baseCorePublicH = "" + @@ -82,10 +79,7 @@ const baseCorePublicH = "" + "// ---------------- Slices and Tables\n\n// WUFFS_BASE__SLICE is a 1-dimensional buffer.\n//\n// len measures a number of elements, not necessarily a size in bytes.\n//\n// A value with all fields NULL or zero is a valid, empty slice.\n#define WUFFS_BASE__SLICE(T) \\\n struct { \\\n T* ptr; \\\n size_t len; \\\n }\n\n// WUFFS_BASE__TABLE is a 2-dimensional buffer.\n//\n// width height, and stride measure a number of elements, not necessarily a\n// size in bytes.\n//\n// A value with all fields NULL or zero is a valid, empty table.\n#define WUFFS_BASE__TABLE(T) \\\n struct { \\\n T* ptr; \\\n size_t width; \\\n size_t height; \\\n size_t stride; \\\n }\n\ntypedef WUFFS_BASE__SLICE(uint8_t) wuffs_base__slice_u8;\ntypedef WUFFS_BASE__SLICE(uint16_t) wuffs_base__slice_u16;\ntypedef WUFFS_BASE__SLICE(uint32_t) wuffs_base__slice_u32;\ntypedef WUFFS_BASE__SLICE(uint64_t) wuffs_base__slice_u64;\n\ntypedef WUFFS_BASE__TABLE(u" + "int8_t) wuffs_base__table_u8;\ntypedef WUFFS_BASE__TABLE(uint16_t) wuffs_base__table_u16;\ntypedef WUFFS_BASE__TABLE(uint32_t) wuffs_base__table_u32;\ntypedef WUFFS_BASE__TABLE(uint64_t) wuffs_base__table_u64;\n\nstatic inline wuffs_base__slice_u8 //\nwuffs_base__make_slice_u8(uint8_t* ptr, size_t len) {\n wuffs_base__slice_u8 ret;\n ret.ptr = ptr;\n ret.len = len;\n return ret;\n}\n\nstatic inline wuffs_base__slice_u16 //\nwuffs_base__make_slice_u16(uint16_t* ptr, size_t len) {\n wuffs_base__slice_u16 ret;\n ret.ptr = ptr;\n ret.len = len;\n return ret;\n}\n\nstatic inline wuffs_base__slice_u32 //\nwuffs_base__make_slice_u32(uint32_t* ptr, size_t len) {\n wuffs_base__slice_u32 ret;\n ret.ptr = ptr;\n ret.len = len;\n return ret;\n}\n\nstatic inline wuffs_base__slice_u64 //\nwuffs_base__make_slice_u64(uint64_t* ptr, size_t len) {\n wuffs_base__slice_u64 ret;\n ret.ptr = ptr;\n ret.len = len;\n return ret;\n}\n\nstatic inline wuffs_base__slice_u8 //\nwuffs_base__null_slice_u8() {\n wuffs_base__slice_u8 ret;\n ret.ptr = NULL;\n " + " ret.len = 0;\n return ret;\n}\n\nstatic inline wuffs_base__table_u8 //\nwuffs_base__null_table_u8() {\n wuffs_base__table_u8 ret;\n ret.ptr = NULL;\n ret.width = 0;\n ret.height = 0;\n ret.stride = 0;\n return ret;\n}\n\n// wuffs_base__slice_u8__subslice_i returns s[i:].\n//\n// It returns an empty slice if i is out of bounds.\nstatic inline wuffs_base__slice_u8 //\nwuffs_base__slice_u8__subslice_i(wuffs_base__slice_u8 s, uint64_t i) {\n if ((i <= SIZE_MAX) && (i <= s.len)) {\n return wuffs_base__make_slice_u8(s.ptr + i, s.len - i);\n }\n return wuffs_base__make_slice_u8(NULL, 0);\n}\n\n// wuffs_base__slice_u8__subslice_j returns s[:j].\n//\n// It returns an empty slice if j is out of bounds.\nstatic inline wuffs_base__slice_u8 //\nwuffs_base__slice_u8__subslice_j(wuffs_base__slice_u8 s, uint64_t j) {\n if ((j <= SIZE_MAX) && (j <= s.len)) {\n return wuffs_base__make_slice_u8(s.ptr, j);\n }\n return wuffs_base__make_slice_u8(NULL, 0);\n}\n\n// wuffs_base__slice_u8__subslice_ij returns s[i:j].\n//\n// It returns an empty sli" + - "ce if i or j is out of bounds.\nstatic inline wuffs_base__slice_u8 //\nwuffs_base__slice_u8__subslice_ij(wuffs_base__slice_u8 s,\n uint64_t i,\n uint64_t j) {\n if ((i <= j) && (j <= SIZE_MAX) && (j <= s.len)) {\n return wuffs_base__make_slice_u8(s.ptr + i, j - i);\n }\n return wuffs_base__make_slice_u8(NULL, 0);\n}\n\n" + - "" + - "// ---------------- Bureaucracy re -Wunused-function\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__core_public()\n WUFFS_BASE__POTENTIALLY_UNUSED;\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__core_public() {\n (void)(wuffs_base__make_empty_struct);\n (void)(wuffs_base__make_slice_u16);\n (void)(wuffs_base__make_slice_u32);\n (void)(wuffs_base__make_slice_u64);\n (void)(wuffs_base__make_slice_u8);\n (void)(wuffs_base__null_slice_u8);\n (void)(wuffs_base__null_table_u8);\n (void)(wuffs_base__slice_u8__subslice_i);\n (void)(wuffs_base__slice_u8__subslice_ij);\n (void)(wuffs_base__slice_u8__subslice_j);\n (void)(wuffs_base__status__is_complete);\n (void)(wuffs_base__status__is_error);\n (void)(wuffs_base__status__is_ok);\n (void)(wuffs_base__status__is_suspension);\n (void)(wuffs_base__status__is_warning);\n (void)(wuffs_base__u16__max);\n (void)(wuffs_base__u16__min);\n (void)(wuffs_base__u16__sat_add);\n (void)(wuffs_base__u16__sat_sub);\n (void)(wuffs_" + - "base__u32__max);\n (void)(wuffs_base__u32__min);\n (void)(wuffs_base__u32__sat_add);\n (void)(wuffs_base__u32__sat_sub);\n (void)(wuffs_base__u64__max);\n (void)(wuffs_base__u64__min);\n (void)(wuffs_base__u64__sat_add);\n (void)(wuffs_base__u64__sat_sub);\n (void)(wuffs_base__u8__max);\n (void)(wuffs_base__u8__min);\n (void)(wuffs_base__u8__sat_add);\n (void)(wuffs_base__u8__sat_sub);\n}\n" + + "ce if i or j is out of bounds.\nstatic inline wuffs_base__slice_u8 //\nwuffs_base__slice_u8__subslice_ij(wuffs_base__slice_u8 s,\n uint64_t i,\n uint64_t j) {\n if ((i <= j) && (j <= SIZE_MAX) && (j <= s.len)) {\n return wuffs_base__make_slice_u8(s.ptr + i, j - i);\n }\n return wuffs_base__make_slice_u8(NULL, 0);\n}\n" + "" const baseMemoryPrivateH = "" + @@ -95,9 +89,7 @@ const baseMemoryPrivateH = "" + const baseMemoryPublicH = "" + "// ---------------- Memory Allocation\n\n// The memory allocation related functions in this section aren't used by Wuffs\n// per se, but they may be helpful to the code that uses Wuffs.\n\n// wuffs_base__malloc_slice_uxx wraps calling a malloc-like function, except\n// that it takes a uint64_t number of elements instead of a size_t size in\n// bytes, and it returns a slice (a pointer and a length) instead of just a\n// pointer.\n//\n// You can pass the C stdlib's malloc as the malloc_func.\n//\n// It returns an empty slice (containing a NULL ptr field) if (num_uxx *\n// sizeof(uintxx_t)) would overflow SIZE_MAX.\n\nstatic inline wuffs_base__slice_u8 //\nwuffs_base__malloc_slice_u8(void* (*malloc_func)(size_t), uint64_t num_u8) {\n if (malloc_func && (num_u8 <= (SIZE_MAX / sizeof(uint8_t)))) {\n void* p = (*malloc_func)(num_u8 * sizeof(uint8_t));\n if (p) {\n return wuffs_base__make_slice_u8((uint8_t*)(p), num_u8);\n }\n }\n return wuffs_base__make_slice_u8(NULL, 0);\n}\n\nstatic inline wuffs_base__slice_u16 //\nwuffs" + "_base__malloc_slice_u16(void* (*malloc_func)(size_t), uint64_t num_u16) {\n if (malloc_func && (num_u16 <= (SIZE_MAX / sizeof(uint16_t)))) {\n void* p = (*malloc_func)(num_u16 * sizeof(uint16_t));\n if (p) {\n return wuffs_base__make_slice_u16((uint16_t*)(p), num_u16);\n }\n }\n return wuffs_base__make_slice_u16(NULL, 0);\n}\n\nstatic inline wuffs_base__slice_u32 //\nwuffs_base__malloc_slice_u32(void* (*malloc_func)(size_t), uint64_t num_u32) {\n if (malloc_func && (num_u32 <= (SIZE_MAX / sizeof(uint32_t)))) {\n void* p = (*malloc_func)(num_u32 * sizeof(uint32_t));\n if (p) {\n return wuffs_base__make_slice_u32((uint32_t*)(p), num_u32);\n }\n }\n return wuffs_base__make_slice_u32(NULL, 0);\n}\n\nstatic inline wuffs_base__slice_u64 //\nwuffs_base__malloc_slice_u64(void* (*malloc_func)(size_t), uint64_t num_u64) {\n if (malloc_func && (num_u64 <= (SIZE_MAX / sizeof(uint64_t)))) {\n void* p = (*malloc_func)(num_u64 * sizeof(uint64_t));\n if (p) {\n return wuffs_base__make_slice_u64((uint64_" + - "t*)(p), num_u64);\n }\n }\n return wuffs_base__make_slice_u64(NULL, 0);\n}\n\n" + - "" + - "// ---------------- Bureaucracy re -Wunused-function\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__memory_public()\n WUFFS_BASE__POTENTIALLY_UNUSED;\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__memory_public() {\n (void)(wuffs_base__malloc_slice_u16);\n (void)(wuffs_base__malloc_slice_u32);\n (void)(wuffs_base__malloc_slice_u64);\n (void)(wuffs_base__malloc_slice_u8);\n}\n" + + "t*)(p), num_u64);\n }\n }\n return wuffs_base__make_slice_u64(NULL, 0);\n}\n" + "" const baseImagePrivateH = "" + @@ -157,11 +149,7 @@ const baseImagePublicH = "" + "" + "// --------\n\ntypedef struct {\n // Do not access the private_impl's fields directly. There is no API/ABI\n // compatibility or safety guarantee if you do so.\n struct {\n // TODO: should the func type take restrict pointers?\n uint64_t (*func)(wuffs_base__slice_u8 dst,\n wuffs_base__slice_u8 dst_palette,\n wuffs_base__slice_u8 src);\n } private_impl;\n\n#ifdef __cplusplus\n inline void prepare(wuffs_base__pixel_format dst_format,\n wuffs_base__slice_u8 dst_palette,\n wuffs_base__pixel_format src_format,\n wuffs_base__slice_u8 src_palette);\n inline uint64_t swizzle_packed(wuffs_base__slice_u8 dst,\n wuffs_base__slice_u8 dst_palette,\n wuffs_base__slice_u8 src);\n#endif // __cplusplus\n\n} wuffs_base__pixel_swizzler;\n\n// TODO: should prepare (both the C and C++ methods) return a status?\n\nvoid //\nwuffs_base__pixel_swizzler__prepare(wuffs_base__pixel_swi" + "zzler* p,\n wuffs_base__pixel_format dst_format,\n wuffs_base__slice_u8 dst_palette,\n wuffs_base__pixel_format src_format,\n wuffs_base__slice_u8 src_palette);\n\nuint64_t //\nwuffs_base__pixel_swizzler__swizzle_packed(wuffs_base__pixel_swizzler* p,\n wuffs_base__slice_u8 dst,\n wuffs_base__slice_u8 dst_palette,\n wuffs_base__slice_u8 src);\n\n#ifdef __cplusplus\n\ninline void //\nwuffs_base__pixel_swizzler::prepare(wuffs_base__pixel_format dst_format,\n wuffs_base__slice_u8 dst_palette,\n wuffs_base__pixel_format src_format,\n wuffs_base__slice_u8 src_palette) {\n wuffs_base__pixel_swizzler__prepare(this, dst_format, dst_palette, src_format,\n " + - " src_palette);\n}\n\nuint64_t //\nwuffs_base__pixel_swizzler::swizzle_packed(wuffs_base__slice_u8 dst,\n wuffs_base__slice_u8 dst_palette,\n wuffs_base__slice_u8 src) {\n return wuffs_base__pixel_swizzler__swizzle_packed(this, dst, dst_palette,\n src);\n}\n\n#endif // __cplusplus\n\n" + - "" + - "// ---------------- Bureaucracy re -Wunused-function\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__image_public()\n WUFFS_BASE__POTENTIALLY_UNUSED;\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__image_public() {\n (void)(wuffs_base__frame_config__blend);\n (void)(wuffs_base__frame_config__bounds);\n (void)(wuffs_base__frame_config__disposal);\n (void)(wuffs_base__frame_config__duration);\n (void)(wuffs_base__frame_config__height);\n (void)(wuffs_base__frame_config__index);\n (void)(wuffs_base__frame_config__io_position);\n (void)(wuffs_base__frame_config__update);\n (void)(wuffs_base__frame_config__width);\n (void)(wuffs_base__image_config__first_frame_io_position);\n (void)(wuffs_base__image_config__first_frame_is_opaque);\n (void)(wuffs_base__image_config__invalidate);\n (void)(wuffs_base__image_config__is_valid);\n (void)(wuffs_base__image_config__set);\n (void)(wuffs_base__null_frame_config());\n (void)(wuffs_base__null_image_config());\n (void)(wuf" + - "fs_base__null_pixel_buffer());\n (void)(wuffs_base__null_pixel_config());\n (void)(wuffs_base__pixel_buffer__palette);\n (void)(wuffs_base__pixel_buffer__pixel_format);\n (void)(wuffs_base__pixel_buffer__plane);\n (void)(wuffs_base__pixel_buffer__set_from_slice);\n (void)(wuffs_base__pixel_config__bounds);\n (void)(wuffs_base__pixel_config__height);\n (void)(wuffs_base__pixel_config__invalidate);\n (void)(wuffs_base__pixel_config__is_valid);\n (void)(wuffs_base__pixel_config__pixbuf_len);\n (void)(wuffs_base__pixel_config__pixel_format);\n (void)(wuffs_base__pixel_config__pixel_subsampling);\n (void)(wuffs_base__pixel_config__set);\n (void)(wuffs_base__pixel_config__width);\n (void)(wuffs_base__pixel_format__bits_per_pixel);\n (void)(wuffs_base__pixel_format__is_indexed);\n (void)(wuffs_base__pixel_format__is_packed);\n (void)(wuffs_base__pixel_format__is_planar);\n (void)(wuffs_base__pixel_format__is_valid);\n (void)(wuffs_base__pixel_format__num_planes);\n (void)(wuffs_base__pixel_subsampling__bias_x);\n (v" + - "oid)(wuffs_base__pixel_subsampling__bias_y);\n (void)(wuffs_base__pixel_subsampling__shift_x);\n (void)(wuffs_base__pixel_subsampling__shift_y);\n (void)(wuffs_base__pixel_swizzler__prepare);\n (void)(wuffs_base__pixel_swizzler__swizzle_packed);\n}\n" + + " src_palette);\n}\n\nuint64_t //\nwuffs_base__pixel_swizzler::swizzle_packed(wuffs_base__slice_u8 dst,\n wuffs_base__slice_u8 dst_palette,\n wuffs_base__slice_u8 src) {\n return wuffs_base__pixel_swizzler__swizzle_packed(this, dst, dst_palette,\n src);\n}\n\n#endif // __cplusplus\n" + "" const baseIOPrivateH = "" + @@ -175,9 +163,7 @@ const baseIOPrivateH = "" + "t** ptr_iop_r, uint8_t* io1_r, uint64_t n) {\n if (n <= ((size_t)(io1_r - *ptr_iop_r))) {\n uint8_t* p = *ptr_iop_r;\n *ptr_iop_r += n;\n return wuffs_base__make_slice_u8(p, n);\n }\n return wuffs_base__make_slice_u8(NULL, 0);\n}\n\nstatic inline wuffs_base__empty_struct //\nwuffs_base__io_writer__set(wuffs_base__io_writer* o,\n wuffs_base__io_buffer* b,\n uint8_t** ptr_iop_w,\n uint8_t** ptr_io1_w,\n wuffs_base__slice_u8 data) {\n b->data = data;\n b->meta.wi = 0;\n b->meta.ri = 0;\n b->meta.pos = 0;\n b->meta.closed = false;\n\n o->private_impl.buf = b;\n o->private_impl.mark = data.ptr;\n o->private_impl.limit = data.ptr + data.len;\n *ptr_iop_w = data.ptr;\n *ptr_io1_w = data.ptr + data.len;\n\n wuffs_base__empty_struct ret;\n ret.private_impl = 0;\n return ret;\n}\n\nstatic inline wuffs_base__empty_struct //\nwuffs_base__io_writer__set_mark(wuffs_base__io_writer* o, uint8_t* mark) {\n o->private_impl.mark = " + "mark;\n\n wuffs_base__empty_struct ret;\n ret.private_impl = 0;\n return ret;\n}\n\n" + "" + - "// ---------------- I/O (Utility)\n\n#define wuffs_base__utility__null_io_reader wuffs_base__null_io_reader\n#define wuffs_base__utility__null_io_writer wuffs_base__null_io_writer\n\n" + - "" + - "// ---------------- Bureaucracy re -Wunused-function\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__io_private()\n WUFFS_BASE__POTENTIALLY_UNUSED;\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__io_private() {\n (void)(wuffs_base__io_buffer__is_valid);\n (void)(wuffs_base__io_reader__is_eof);\n (void)(wuffs_base__io_reader__is_valid);\n (void)(wuffs_base__io_reader__set);\n (void)(wuffs_base__io_reader__set_limit);\n (void)(wuffs_base__io_reader__set_mark);\n (void)(wuffs_base__io_reader__take);\n (void)(wuffs_base__io_writer__copy_from_slice);\n (void)(wuffs_base__io_writer__copy_n_from_history);\n (void)(wuffs_base__io_writer__copy_n_from_history_fast);\n (void)(wuffs_base__io_writer__copy_n_from_reader);\n (void)(wuffs_base__io_writer__copy_n_from_slice);\n (void)(wuffs_base__io_writer__is_valid);\n (void)(wuffs_base__io_writer__set);\n (void)(wuffs_base__io_writer__set_mark);\n}\n" + + "// ---------------- I/O (Utility)\n\n#define wuffs_base__utility__null_io_reader wuffs_base__null_io_reader\n#define wuffs_base__utility__null_io_writer wuffs_base__null_io_writer\n" + "" const baseIOPublicH = "" + @@ -186,9 +172,7 @@ const baseIOPublicH = "" + "uffs_base__io_buffer ret;\n ret.data = data;\n ret.meta = meta;\n return ret;\n}\n\nstatic inline wuffs_base__io_buffer_meta //\nwuffs_base__make_io_buffer_meta(size_t wi,\n size_t ri,\n uint64_t pos,\n bool closed) {\n wuffs_base__io_buffer_meta ret;\n ret.wi = wi;\n ret.ri = ri;\n ret.pos = pos;\n ret.closed = closed;\n return ret;\n}\n\nstatic inline wuffs_base__io_buffer //\nwuffs_base__null_io_buffer() {\n wuffs_base__io_buffer ret;\n ret.data.ptr = NULL;\n ret.data.len = 0;\n ret.meta.wi = 0;\n ret.meta.ri = 0;\n ret.meta.pos = 0;\n ret.meta.closed = false;\n return ret;\n}\n\nstatic inline wuffs_base__io_buffer_meta //\nwuffs_base__null_io_buffer_meta() {\n wuffs_base__io_buffer_meta ret;\n ret.wi = 0;\n ret.ri = 0;\n ret.pos = 0;\n ret.closed = false;\n return ret;\n}\n\nstatic inline wuffs_base__io_reader //\nwuffs_base__null_io_reader() {\n wuffs_base__io_reader ret;\n ret.private_impl.buf = NULL;\n ret.private_impl.mark =" + " NULL;\n ret.private_impl.limit = NULL;\n return ret;\n}\n\nstatic inline wuffs_base__io_writer //\nwuffs_base__null_io_writer() {\n wuffs_base__io_writer ret;\n ret.private_impl.buf = NULL;\n ret.private_impl.mark = NULL;\n ret.private_impl.limit = NULL;\n return ret;\n}\n\n// wuffs_base__io_buffer__compact moves any written but unread bytes to the\n// start of the buffer.\nstatic inline void //\nwuffs_base__io_buffer__compact(wuffs_base__io_buffer* buf) {\n if (!buf || (buf->meta.ri == 0)) {\n return;\n }\n buf->meta.pos = wuffs_base__u64__sat_add(buf->meta.pos, buf->meta.ri);\n size_t n = buf->meta.wi - buf->meta.ri;\n if (n != 0) {\n memmove(buf->data.ptr, buf->data.ptr + buf->meta.ri, n);\n }\n buf->meta.wi = n;\n buf->meta.ri = 0;\n}\n\nstatic inline wuffs_base__io_reader //\nwuffs_base__io_buffer__reader(wuffs_base__io_buffer* buf) {\n wuffs_base__io_reader ret;\n ret.private_impl.buf = buf;\n ret.private_impl.mark = NULL;\n ret.private_impl.limit = NULL;\n return ret;\n}\n\nstatic inline wuffs_base__io_writer " + "//\nwuffs_base__io_buffer__writer(wuffs_base__io_buffer* buf) {\n wuffs_base__io_writer ret;\n ret.private_impl.buf = buf;\n ret.private_impl.mark = NULL;\n ret.private_impl.limit = NULL;\n return ret;\n}\n\nstatic inline uint64_t //\nwuffs_base__io_buffer__reader_io_position(wuffs_base__io_buffer* buf) {\n return buf ? wuffs_base__u64__sat_add(buf->meta.pos, buf->meta.ri) : 0;\n}\n\nstatic inline uint64_t //\nwuffs_base__io_buffer__writer_io_position(wuffs_base__io_buffer* buf) {\n return buf ? wuffs_base__u64__sat_add(buf->meta.pos, buf->meta.wi) : 0;\n}\n\n#ifdef __cplusplus\n\ninline void //\nwuffs_base__io_buffer__struct::compact() {\n wuffs_base__io_buffer__compact(this);\n}\n\ninline wuffs_base__io_reader //\nwuffs_base__io_buffer__struct::reader() {\n return wuffs_base__io_buffer__reader(this);\n}\n\ninline wuffs_base__io_writer //\nwuffs_base__io_buffer__struct::writer() {\n return wuffs_base__io_buffer__writer(this);\n}\n\ninline uint64_t //\nwuffs_base__io_buffer__struct::reader_io_position() {\n return wuffs_base__io_" + - "buffer__reader_io_position(this);\n}\n\ninline uint64_t //\nwuffs_base__io_buffer__struct::writer_io_position() {\n return wuffs_base__io_buffer__writer_io_position(this);\n}\n\n#endif // __cplusplus\n\n" + - "" + - "// ---------------- Bureaucracy re -Wunused-function\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__io_public()\n WUFFS_BASE__POTENTIALLY_UNUSED;\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__io_public() {\n (void)(wuffs_base__io_buffer__compact);\n (void)(wuffs_base__io_buffer__reader);\n (void)(wuffs_base__io_buffer__reader_io_position);\n (void)(wuffs_base__io_buffer__writer);\n (void)(wuffs_base__io_buffer__writer_io_position);\n (void)(wuffs_base__make_io_buffer);\n (void)(wuffs_base__make_io_buffer_meta);\n (void)(wuffs_base__null_io_buffer);\n (void)(wuffs_base__null_io_buffer_meta);\n (void)(wuffs_base__null_io_reader);\n (void)(wuffs_base__null_io_writer);\n}\n" + + "buffer__reader_io_position(this);\n}\n\ninline uint64_t //\nwuffs_base__io_buffer__struct::writer_io_position() {\n return wuffs_base__io_buffer__writer_io_position(this);\n}\n\n#endif // __cplusplus\n" + "" const baseRangePrivateH = "" + @@ -196,8 +180,6 @@ const baseRangePrivateH = "" + "ie_u64* r) {\n return r->max_excl;\n}\n\n" + "" + "// ---------------- Ranges and Rects (Utility)\n\n#define wuffs_base__utility__make_range_ii_u32 wuffs_base__make_range_ii_u32\n#define wuffs_base__utility__make_range_ie_u32 wuffs_base__make_range_ie_u32\n#define wuffs_base__utility__make_range_ii_u64 wuffs_base__make_range_ii_u64\n#define wuffs_base__utility__make_range_ie_u64 wuffs_base__make_range_ie_u64\n#define wuffs_base__utility__make_rect_ii_u32 wuffs_base__make_rect_ii_u32\n#define wuffs_base__utility__make_rect_ie_u32 wuffs_base__make_rect_ie_u32\n\n" + - "" + - "// ---------------- Bureaucracy re -Wunused-function\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__range_private()\n WUFFS_BASE__POTENTIALLY_UNUSED;\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__range_private() {\n (void)(wuffs_base__range_ie_u32__get_max_excl);\n (void)(wuffs_base__range_ie_u32__get_min_incl);\n (void)(wuffs_base__range_ie_u64__get_max_excl);\n (void)(wuffs_base__range_ie_u64__get_min_incl);\n (void)(wuffs_base__range_ii_u32__get_max_incl);\n (void)(wuffs_base__range_ii_u32__get_min_incl);\n (void)(wuffs_base__range_ii_u64__get_max_incl);\n (void)(wuffs_base__range_ii_u64__get_min_incl);\n}\n" + "" const baseRangePublicH = "" + @@ -234,11 +216,7 @@ const baseRangePublicH = "" + ") ||\n (wuffs_base__rect_ie_u32__is_empty(r) &&\n wuffs_base__rect_ie_u32__is_empty(&s));\n}\n\nstatic inline wuffs_base__rect_ie_u32 //\nwuffs_base__rect_ie_u32__intersect(wuffs_base__rect_ie_u32* r,\n wuffs_base__rect_ie_u32 s) {\n wuffs_base__rect_ie_u32 t;\n t.min_incl_x = wuffs_base__u32__max(r->min_incl_x, s.min_incl_x);\n t.min_incl_y = wuffs_base__u32__max(r->min_incl_y, s.min_incl_y);\n t.max_excl_x = wuffs_base__u32__min(r->max_excl_x, s.max_excl_x);\n t.max_excl_y = wuffs_base__u32__min(r->max_excl_y, s.max_excl_y);\n return t;\n}\n\nstatic inline wuffs_base__rect_ie_u32 //\nwuffs_base__rect_ie_u32__unite(wuffs_base__rect_ie_u32* r,\n wuffs_base__rect_ie_u32 s) {\n if (wuffs_base__rect_ie_u32__is_empty(r)) {\n return s;\n }\n if (wuffs_base__rect_ie_u32__is_empty(&s)) {\n return *r;\n }\n wuffs_base__rect_ie_u32 t;\n t.min_incl_x = wuffs_base__u32__min(r->min_incl_x, s.min_incl_x);\n t.min_incl_y = wuffs_base__u32__min(r->mi" + "n_incl_y, s.min_incl_y);\n t.max_excl_x = wuffs_base__u32__max(r->max_excl_x, s.max_excl_x);\n t.max_excl_y = wuffs_base__u32__max(r->max_excl_y, s.max_excl_y);\n return t;\n}\n\nstatic inline bool //\nwuffs_base__rect_ie_u32__contains(wuffs_base__rect_ie_u32* r,\n uint32_t x,\n uint32_t y) {\n return (r->min_incl_x <= x) && (x < r->max_excl_x) && (r->min_incl_y <= y) &&\n (y < r->max_excl_y);\n}\n\nstatic inline bool //\nwuffs_base__rect_ie_u32__contains_rect(wuffs_base__rect_ie_u32* r,\n wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__equals(\n &s, wuffs_base__rect_ie_u32__intersect(r, s));\n}\n\nstatic inline uint32_t //\nwuffs_base__rect_ie_u32__width(wuffs_base__rect_ie_u32* r) {\n return wuffs_base__u32__sat_sub(r->max_excl_x, r->min_incl_x);\n}\n\nstatic inline uint32_t //\nwuffs_base__rect_ie_u32__height(wuffs_base__rect_ie_u32* r) {\n return wuffs_base__u32__sat_sub(r->max_excl_y, r->min" + "_incl_y);\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__rect_ie_u32::is_empty() {\n return wuffs_base__rect_ie_u32__is_empty(this);\n}\n\ninline bool //\nwuffs_base__rect_ie_u32::equals(wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__equals(this, s);\n}\n\ninline wuffs_base__rect_ie_u32 //\nwuffs_base__rect_ie_u32::intersect(wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__intersect(this, s);\n}\n\ninline wuffs_base__rect_ie_u32 //\nwuffs_base__rect_ie_u32::unite(wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__unite(this, s);\n}\n\ninline bool //\nwuffs_base__rect_ie_u32::contains(uint32_t x, uint32_t y) {\n return wuffs_base__rect_ie_u32__contains(this, x, y);\n}\n\ninline bool //\nwuffs_base__rect_ie_u32::contains_rect(wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__contains_rect(this, s);\n}\n\ninline uint32_t //\nwuffs_base__rect_ie_u32::width() {\n return wuffs_base__rect_ie_u32__width(this);\n}\n\ninline uint32_t //\nwuffs_base__rect_ie_u32::height() {\n return" + - " wuffs_base__rect_ie_u32__height(this);\n}\n\n#endif // __cplusplus\n\n" + - "" + - "// ---------------- Bureaucracy re -Wunused-function\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__range_public()\n WUFFS_BASE__POTENTIALLY_UNUSED;\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__range_public() {\n (void)(wuffs_base__make_range_ie_u32);\n (void)(wuffs_base__make_range_ie_u64);\n (void)(wuffs_base__make_range_ii_u32);\n (void)(wuffs_base__make_range_ii_u64);\n (void)(wuffs_base__make_rect_ie_u32);\n (void)(wuffs_base__make_rect_ii_u32);\n (void)(wuffs_base__range_ie_u32__contains);\n (void)(wuffs_base__range_ie_u32__contains_range);\n (void)(wuffs_base__range_ie_u32__equals);\n (void)(wuffs_base__range_ie_u32__intersect);\n (void)(wuffs_base__range_ie_u32__is_empty);\n (void)(wuffs_base__range_ie_u32__length);\n (void)(wuffs_base__range_ie_u32__unite);\n (void)(wuffs_base__range_ie_u64__contains);\n (void)(wuffs_base__range_ie_u64__contains_range);\n (void)(wuffs_base__range_ie_u64__equals);\n (void)(wuffs_base__range_ie_u64__intersect);\n" + - " (void)(wuffs_base__range_ie_u64__is_empty);\n (void)(wuffs_base__range_ie_u64__length);\n (void)(wuffs_base__range_ie_u64__unite);\n (void)(wuffs_base__range_ii_u32__contains);\n (void)(wuffs_base__range_ii_u32__contains_range);\n (void)(wuffs_base__range_ii_u32__equals);\n (void)(wuffs_base__range_ii_u32__intersect);\n (void)(wuffs_base__range_ii_u32__is_empty);\n (void)(wuffs_base__range_ii_u32__unite);\n (void)(wuffs_base__range_ii_u64__contains);\n (void)(wuffs_base__range_ii_u64__contains_range);\n (void)(wuffs_base__range_ii_u64__equals);\n (void)(wuffs_base__range_ii_u64__intersect);\n (void)(wuffs_base__range_ii_u64__is_empty);\n (void)(wuffs_base__range_ii_u64__unite);\n (void)(wuffs_base__rect_ie_u32__contains);\n (void)(wuffs_base__rect_ie_u32__contains_rect);\n (void)(wuffs_base__rect_ie_u32__equals);\n (void)(wuffs_base__rect_ie_u32__height);\n (void)(wuffs_base__rect_ie_u32__intersect);\n (void)(wuffs_base__rect_ie_u32__is_empty);\n (void)(wuffs_base__rect_ie_u32__unite);\n (void)(wuffs_base__" + - "rect_ie_u32__width);\n (void)(wuffs_base__rect_ii_u32__contains);\n (void)(wuffs_base__rect_ie_u32__contains_rect);\n (void)(wuffs_base__rect_ii_u32__equals);\n (void)(wuffs_base__rect_ii_u32__intersect);\n (void)(wuffs_base__rect_ii_u32__is_empty);\n (void)(wuffs_base__rect_ii_u32__unite);\n}\n" + + " wuffs_base__rect_ie_u32__height(this);\n}\n\n#endif // __cplusplus\n" + "" const baseCopyright = "" + diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c index 484252235..8d39b6a1a 100644 --- a/release/c/wuffs-unsupported-snapshot.c +++ b/release/c/wuffs-unsupported-snapshot.c @@ -26,6 +26,12 @@ #include #include +// 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 @@ -459,47 +465,6 @@ wuffs_base__slice_u8__subslice_ij(wuffs_base__slice_u8 s, 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 @@ -1284,62 +1249,6 @@ wuffs_base__rect_ie_u32::height() { #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; @@ -1532,27 +1441,6 @@ wuffs_base__io_buffer__struct::writer_io_position() { #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 @@ -1612,20 +1500,6 @@ wuffs_base__malloc_slice_u64(void* (*malloc_func)(size_t), uint64_t num_u64) { 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 @@ -2722,63 +2596,14 @@ wuffs_base__pixel_swizzler::swizzle_packed(wuffs_base__slice_u8 dst, #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 @@ -4003,6 +3828,12 @@ struct wuffs_zlib__decoder__struct { // 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 @@ -4414,59 +4245,6 @@ wuffs_base__table_u8__row(wuffs_base__table_u8 t, uint32_t y) { #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 // @@ -4518,24 +4296,6 @@ wuffs_base__range_ie_u64__get_max_excl(const wuffs_base__range_ie_u64* r) { #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 // @@ -4802,31 +4562,6 @@ wuffs_base__io_writer__set_mark(wuffs_base__io_writer* o, uint8_t* mark) { #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 @@ -5061,6 +4796,10 @@ wuffs_base__pixel_swizzler__swizzle_packed(wuffs_base__pixel_swizzler* p, } // extern "C" #endif +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + #if !defined(WUFFS_CONFIG__MODULES) || defined(WUFFS_CONFIG__MODULE__ADLER32) // ---------------- Status Codes Implementations