Hi,

I've just upgraded from SQLite 3.6.19 to 3.7.5 and have come across the
following compile warning:

sqlite3.c: In function ‘fkLookupParent’:
sqlite3.c:55991: warning: assuming signed overflow does not occur when
assuming that (X - c) <= X is always true

How to reproduce:

 unzip sqlite-src-3070500.zip
cd sqlite-src-3070500/
./configure --enable-shared --disable-static --disable-tcl
--disable-readline
vi Makefile


Add "-Wall" to the TCC makefile variable, then:

make


gcc -v yields:

Target: i486-linux-gnu
Thread model: posix
gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)


In my copy of the amalgamated sqlite3.c, I see:

 ...
SQLITE_PRIVATE void sqlite3VdbeChangeP2(Vdbe *p, int addr, int val){
    assert( p!=0 );
    assert( addr>=0 );
    if( p->nOp>addr ){                                // this is line 55991
        p->aOp[addr].p2 = val;
    }
}
...


The functions above (sqlite3VdbeChangeP1) and below (sqlite3VdbeChangeP3)
look suspicious too.

I'm a little intrigued that line 55991 is in the sqlite3VdbeChangeP2
function and not, as reported by the compiler, the fkLookupParent function
!?

If I configure for the non-amalgamated build, edit the Makefile to add -Wall
and build, no such error appears !?

I would like to use the amalgamated build (since all the documentation
implores me too), but this warning makes me nervous ...

Graham.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to