On Wed, Jul 2, 2014 at 2:41 PM, Clemens Ladisch <clem...@ladisch.de> wrote:
> > | Prototype causes non-standard conversion from `int' to > `sqlite3_int64' > > This is just an overzealous and absurdly useless warning. > Try to reduce the warning level. > AFAIK, any conversion from a less precise type to a more precise type is does not constitute a warning. Only when precision "could" be lost (int64==>int, or signedness differences) is a warning in order. Maybe sqlite3_int64 on that platform is of a type smaller than int, or is unsigned? That'd be weird, but i've seen weirder (8-byte booleans!). > warning 572: Potentially dangerous pointer cast: > > | sizeof `struct FuncDef' ("../sqlite/sqlite3.c",L8668/C24) differs > from > > | sizeof `struct FuncDef[8]' and > > | accessing an lvalue through this pointer alias may violate > assumptions > > | in the ANSI C Language Reference used by the optimizer. > > | (See (X3.159-1989 p.39,L18) on object access for more details.) > > I'm quite sure that this interpretation of the standard is plain wrong, > +1, and unless i'm misunderstanding the problem (haven't got the code on this machine and am too lazy to google it up), it's simple to deduce that this is a compiler bug: in C, for any array of type X, any element of that array is guaranteed to be exactly sizeof(X). C guarantees this, or conventional array traversal (via ptr++ resp. ++ptr) could not work. -- ----- stephan beal http://wanderinghorse.net/home/stephan/ http://gplus.to/sgbeal "Freedom is sloppy. But since tyranny's the only guaranteed byproduct of those who insist on a perfect world, freedom will have to do." -- Bigby Wolf _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users