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

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -