kiyo-masui / bitshuffle

Filter for improving compression of typed binary data.
Other
215 stars 76 forks source link

Add type casts to avoid gcc4.9.x compile errors #30

Closed maropu closed 8 years ago

maropu commented 8 years ago

Hi,

I found some compile errors in g++ (Homebrew gcc49 4.9.2_1) 4.9.2. Could you check this?

bitshuffle.c: In function 'int64_t bshuf_trans_bit_byte_remainder(void*, void*, size_t, size_t, size_t)':
bitshuffle.c:171:22: error: invalid conversion from 'void*' to 'uint64_t* {aka long long unsigned int*}' [-fpermissive]
     uint64_t* in_b = in;
                      ^
bitshuffle.c:172:22: error: invalid conversion from 'void*' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
     uint8_t* out_b = out;
                      ^
bitshuffle.c: In function 'void bshuf_write_uint64_BE(void*, uint64_t)':
bitshuffle.c:1202:18: error: invalid conversion from 'void*' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
     uint8_t* b = buf;
                  ^
bitshuffle.c: In function 'uint64_t bshuf_read_uint64_BE(void*)':
bitshuffle.c:1214:18: error: invalid conversion from 'void*' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
     uint8_t* b = buf;
                  ^
bitshuffle.c: In function 'void bshuf_write_uint32_BE(void*, uint32_t)':
bitshuffle.c:1227:18: error: invalid conversion from 'void*' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
     uint8_t* b = buf;
                  ^
bitshuffle.c: In function 'uint32_t bshuf_read_uint32_BE(void*)':
bitshuffle.c:1239:18: error: invalid conversion from 'void*' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
     uint8_t* b = buf;
                  ^
bitshuffle.c: In function 'int64_t bshuf_compress_lz4_block(ioc_chain*, size_t, size_t)':
bitshuffle.c:1275:71: error: invalid conversion from 'void*' to 'const char*' [-fpermissive]
     nbytes = LZ4_compress(tmp_buf_bshuf, tmp_buf_lz4, size * elem_size);
                                                                       ^
In file included from bitshuffle.c:14:0:
../lz4/lz4.h:72:5: note: initializing argument 1 of 'int LZ4_compress(const char*, char*, int)'
 int LZ4_compress        (const char* source, char* dest, int sourceSize);
     ^
bitshuffle.c:1275:71: error: invalid conversion from 'void*' to 'char*' [-fpermissive]
     nbytes = LZ4_compress(tmp_buf_bshuf, tmp_buf_lz4, size * elem_size);
                                                                       ^
In file included from bitshuffle.c:14:0:
../lz4/lz4.h:72:5: note: initializing argument 2 of 'int LZ4_compress(const char*, char*, int)'
 int LZ4_compress        (const char* source, char* dest, int sourceSize);
     ^
bitshuffle.c: In function 'int64_t bshuf_decompress_lz4_block(ioc_chain*, size_t, size_t)':
bitshuffle.c:1311:75: error: invalid conversion from 'void*' to 'char*' [-fpermissive]
     nbytes = LZ4_decompress_fast((char*) in + 4, tmp_buf, size * elem_size);
                                                                           ^
In file included from bitshuffle.c:14:0:
../lz4/lz4.h:153:5: note: initializing argument 2 of 'int LZ4_decompress_fast(const char*, char*, int)'
 int LZ4_decompress_fast (const char* source, char* dest, int originalSize);
kiyo-masui commented 8 years ago

C++ has to be the most strongly typed language imaginable to be that fussy.

Thanks for fixing this.