diff options
author | François Andriot <francois.andriot@free.fr> | 2015-09-14 01:29:51 +0200 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2015-09-14 01:29:51 +0200 |
commit | 5fdf91b73be14ea616505bdd98c8002c94804172 (patch) | |
tree | 8f5acf5afbe22241c7b2ea7703384950eac62864 /kernel | |
parent | 53090f76505d2109d86175f6d002b69996d90eea (diff) | |
download | libksquirrel-5fdf91b73be14ea616505bdd98c8002c94804172.tar.gz libksquirrel-5fdf91b73be14ea616505bdd98c8002c94804172.zip |
Fix build warnings
Signed-off-by: François Andriot <francois.andriot@free.fr>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/kls_dds/dds.cpp | 10 | ||||
-rw-r--r-- | kernel/kls_hdr/fmt_codec_hdr.cpp | 5 | ||||
-rw-r--r-- | kernel/kls_png/ksquirrel-libs-png/pngpread.c | 2 | ||||
-rw-r--r-- | kernel/kls_png/ksquirrel-libs-png/pngrutil.c | 2 |
4 files changed, 13 insertions, 6 deletions
diff --git a/kernel/kls_dds/dds.cpp b/kernel/kls_dds/dds.cpp index c5551f0..4205816 100644 --- a/kernel/kls_dds/dds.cpp +++ b/kernel/kls_dds/dds.cpp @@ -564,7 +564,12 @@ static void FREE_ROWS(RGBAP **A, const int H) void GetBits( uchar bit_array[16] ) { - uint b = (uint &) bits[0]; + // uint b = (uint &) bits[0]; + /* avoid a warning + * "dereferencing type-punned pointer will break strict-aliasing rules" + * TODO: check endianness issues (but that was probably broken anyway) */ + uint b; + memcpy(&b, &bits[0], sizeof(b)); bit_array[0] = uchar(b & 0x07); b >>= 3; bit_array[1] = uchar(b & 0x07); b >>= 3; bit_array[2] = uchar(b & 0x07); b >>= 3; @@ -574,7 +579,8 @@ static void FREE_ROWS(RGBAP **A, const int H) bit_array[6] = uchar(b & 0x07); b >>= 3; bit_array[7] = uchar(b & 0x07); b >>= 3; - b = (uint &) bits[3]; + // b = (uint &) bits[3]; + memcpy(&b, &bits[3], sizeof(b)); bit_array[8] = uchar(b & 0x07); b >>= 3; bit_array[9] = uchar(b & 0x07); b >>= 3; bit_array[10] = uchar(b & 0x07); b >>= 3; diff --git a/kernel/kls_hdr/fmt_codec_hdr.cpp b/kernel/kls_hdr/fmt_codec_hdr.cpp index 33af0a0..91f4803 100644 --- a/kernel/kls_hdr/fmt_codec_hdr.cpp +++ b/kernel/kls_hdr/fmt_codec_hdr.cpp @@ -136,8 +136,9 @@ s32 fmt_codec::read_scanline(RGBA *scan) if (e != 0) e = (e - 1) << 23; - t = *(float *)&e; - + // t = *(float *)&e; + /* avoid "dereferencing type-punned pointer will break strict-aliasing rules" warning */ + memcpy(&t, &e, sizeof(t)); (scan + i)->r = u8((r / 255.0f) * t); (scan + i)->g = u8((g / 255.0f) * t); (scan + i)->b = u8((b / 255.0f) * t); diff --git a/kernel/kls_png/ksquirrel-libs-png/pngpread.c b/kernel/kls_png/ksquirrel-libs-png/pngpread.c index 3dd0f06..f34553b 100644 --- a/kernel/kls_png/ksquirrel-libs-png/pngpread.c +++ b/kernel/kls_png/ksquirrel-libs-png/pngpread.c @@ -1670,7 +1670,7 @@ png_push_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 #endif png_strncpy((png_charp)png_ptr->unknown_chunk.name, (png_charp)png_ptr->chunk_name, - png_sizeof((png_charp)png_ptr->chunk_name)); + png_sizeof(png_ptr->unknown_chunk.name)); png_ptr->unknown_chunk.data = (png_bytep)png_malloc(png_ptr, length); png_ptr->unknown_chunk.size = (png_size_t)length; png_crc_read(png_ptr, (png_bytep)png_ptr->unknown_chunk.data, length); diff --git a/kernel/kls_png/ksquirrel-libs-png/pngrutil.c b/kernel/kls_png/ksquirrel-libs-png/pngrutil.c index 899cdc4..6552af3 100644 --- a/kernel/kls_png/ksquirrel-libs-png/pngrutil.c +++ b/kernel/kls_png/ksquirrel-libs-png/pngrutil.c @@ -2374,7 +2374,7 @@ png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) #endif png_strncpy((png_charp)png_ptr->unknown_chunk.name, (png_charp)png_ptr->chunk_name, - png_sizeof((png_charp)png_ptr->chunk_name)); + png_sizeof(png_ptr->unknown_chunk.name)); png_ptr->unknown_chunk.data = (png_bytep)png_malloc(png_ptr, length); png_ptr->unknown_chunk.size = (png_size_t)length; png_crc_read(png_ptr, (png_bytep)png_ptr->unknown_chunk.data, length); |