ios - Warning: Signed shift result (0x1F0000000) requires 34 bits to represent, but 'int' only has 32 bits -
after compiling remail project no error, 1 of warnings is:
remail-iphone/sqlite3/sqlite3.c:18703:15: signed shift result (0x1f0000000) requires 34 bits represent, 'int' has 32 bits
i.e. (0x1f<<28)
in following code:
if (!(a&0x80)) { &= (0x1f<<28)|(0x7f<<14)|(0x7f); b &= (0x7f<<14)|(0x7f); b = b<<7; |= b; s = s>>11; *v = ((u64)s)<<32 | a; return 7; }
what's proper way kill warning ios (32-bit)?
remail iphone seems using old version of sqlite (3.6.15). if i'm not mistaken, following commit should fix problem: http://www.sqlite.org/src/info/587109c81a9cf479?sbs=0
if (!(a&0x80)) { /* assert( ((0xff<<28)|(0x7f<<14)|(0x7f))==0xf01fc07f ); */ &= 0xf01fc07f; b &= (0x7f<<14)|(0x7f); b = b<<7; |= b; s = s>>11; *v = ((u64)s)<<32 | a; return 7; }
however, there might other code sections problem occurs. mentioned link shows 2 instances in util.c, since sqlite.c "an amalgamation of many separate c source files sqlite", may find additional occurences. maybe remail work recent version of sqlite, too...
Comments
Post a Comment