1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

GCC 13 has become more quite pedantic about the signature of functions matching the

type of pointers through which the functions are called.  Make adjustments to
extension functions and test procedures to work around this.  No changes to the
core.

FossilOrigin-Name: ed83b79100b4345235aec990303c4526874f0c2f8701160c4639a80633ebaf70
This commit is contained in:
drh
2025-01-13 11:28:34 +00:00
parent 14bc98d8e2
commit 43afab28a0
8 changed files with 34 additions and 24 deletions

View File

@ -588,12 +588,17 @@ static int closureOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor){
return SQLITE_OK; return SQLITE_OK;
} }
/*
** Wrapper around sqlite3_free
*/
static void closureMemFree(closure_avl *p){ sqlite3_free(p); }
/* /*
** Free up all the memory allocated by a cursor. Set it rLimit to 0 ** Free up all the memory allocated by a cursor. Set it rLimit to 0
** to indicate that it is at EOF. ** to indicate that it is at EOF.
*/ */
static void closureClearCursor(closure_cursor *pCur){ static void closureClearCursor(closure_cursor *pCur){
closureAvlDestroy(pCur->pClosure, (void(*)(closure_avl*))sqlite3_free); closureAvlDestroy(pCur->pClosure, closureMemFree);
sqlite3_free(pCur->zTableName); sqlite3_free(pCur->zTableName);
sqlite3_free(pCur->zIdColumn); sqlite3_free(pCur->zIdColumn);
sqlite3_free(pCur->zParentColumn); sqlite3_free(pCur->zParentColumn);

View File

@ -656,7 +656,8 @@ static const char *re_subcompile_string(ReCompiled *p){
** regular expression. Applications should invoke this routine once ** regular expression. Applications should invoke this routine once
** for every call to re_compile() to avoid memory leaks. ** for every call to re_compile() to avoid memory leaks.
*/ */
static void re_free(ReCompiled *pRe){ static void re_free(void *p){
ReCompiled *pRe = (ReCompiled*)p;
if( pRe ){ if( pRe ){
sqlite3_free(pRe->aOp); sqlite3_free(pRe->aOp);
sqlite3_free(pRe->aArg); sqlite3_free(pRe->aArg);

View File

@ -719,7 +719,6 @@ static int replace_handler(
const char *zTab; /* Name of table conflict is on */ const char *zTab; /* Name of table conflict is on */
int nCol; /* Number of columns in table zTab */ int nCol; /* Number of columns in table zTab */
int i; int i;
int x = 0;
sqlite3changeset_op(pIter, &zTab, &nCol, &op, 0); sqlite3changeset_op(pIter, &zTab, &nCol, &op, 0);
@ -728,7 +727,6 @@ static int replace_handler(
sqlite3_value *pVal; sqlite3_value *pVal;
sqlite3changeset_old(pIter, i, &pVal); sqlite3changeset_old(pIter, i, &pVal);
sqlite3_value_text16(pVal); sqlite3_value_text16(pVal);
x++;
} }
} }
@ -737,7 +735,6 @@ static int replace_handler(
sqlite3_value *pVal; sqlite3_value *pVal;
sqlite3changeset_new(pIter, i, &pVal); sqlite3changeset_new(pIter, i, &pVal);
sqlite3_value_text16(pVal); sqlite3_value_text16(pVal);
x++;
} }
} }

View File

@ -1,5 +1,5 @@
C Fix\sharmless\s"implicit\sfall\sthrough"\swarnings\sthat\ssuddenly\sappeared\swhen\nI\supgraded\sto\sgcc-13. C GCC\s13\shas\sbecome\smore\squite\spedantic\sabout\sthe\ssignature\sof\sfunctions\smatching\sthe\ntype\sof\spointers\sthrough\swhich\sthe\sfunctions\sare\scalled.\s\sMake\sadjustments\sto\nextension\sfunctions\sand\stest\sprocedures\sto\swork\saround\sthis.\s\sNo\schanges\sto\sthe\ncore.
D 2025-01-11T16:28:41.860 D 2025-01-13T11:28:34.810
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@ -408,7 +408,7 @@ F ext/misc/btreeinfo.c cb952620eedf5c0b7625b678f0f08e54d2ec0011d4e50efda5ebdc97f
F ext/misc/carray.c 34fac63770971611c5285de0a9f0ac67d504eaf66be891f637add9290f1c76a5 F ext/misc/carray.c 34fac63770971611c5285de0a9f0ac67d504eaf66be891f637add9290f1c76a5
F ext/misc/carray.h 503209952ccf2431c7fd899ebb92bf46bf7635b38aace42ec8aa1b8d7b6e98a5 F ext/misc/carray.h 503209952ccf2431c7fd899ebb92bf46bf7635b38aace42ec8aa1b8d7b6e98a5
F ext/misc/cksumvfs.c 3a7931dd30667be6348af919f3f9e6188dfd7646b42af8e399a499b327f5bd63 F ext/misc/cksumvfs.c 3a7931dd30667be6348af919f3f9e6188dfd7646b42af8e399a499b327f5bd63
F ext/misc/closure.c 0e04f52d93e678dd6f950f195f365992edf3c380df246f3d80425cba4c13891e F ext/misc/closure.c 87e0967772e0087e709887ce7ca9cf13aa32d2096e33b5d3382c8b8d477c6cb1
F ext/misc/completion.c cb978c88d5577821323617a8ea775ce1b920e02dcdb593858f02044a4d008eea F ext/misc/completion.c cb978c88d5577821323617a8ea775ce1b920e02dcdb593858f02044a4d008eea
F ext/misc/compress.c 2c79a74330e0e0ba6cb3f7397f8ba5af12d46377ef5d3ee075e12dd8a6ed57f0 F ext/misc/compress.c 2c79a74330e0e0ba6cb3f7397f8ba5af12d46377ef5d3ee075e12dd8a6ed57f0
F ext/misc/csv.c 575c2c05fba0a451586a4d42c2c81e711780c41e797126f198d8d9e0a308dcdb F ext/misc/csv.c 575c2c05fba0a451586a4d42c2c81e711780c41e797126f198d8d9e0a308dcdb
@ -432,7 +432,7 @@ F ext/misc/percentile.c 82531c62cd015b9cdca95ad6bb10c3a907ceb570d21ebd4fb7d634c8
F ext/misc/prefixes.c 82645f79229877afab08c8b08ca1e7fa31921280906b90a61c294e4f540cd2a6 F ext/misc/prefixes.c 82645f79229877afab08c8b08ca1e7fa31921280906b90a61c294e4f540cd2a6
F ext/misc/qpvtab.c fc189e127f68f791af90a487f4460ec91539a716daf45a0c357e963fd47cc06c F ext/misc/qpvtab.c fc189e127f68f791af90a487f4460ec91539a716daf45a0c357e963fd47cc06c
F ext/misc/randomjson.c ef835fc64289e76ac4873b85fe12f9463a036168d7683cf2b773e36e6262c4ed F ext/misc/randomjson.c ef835fc64289e76ac4873b85fe12f9463a036168d7683cf2b773e36e6262c4ed
F ext/misc/regexp.c 4bdd0045912f81c84908bd535ec5ad3b1c8540b4287c70ab84070963624047db F ext/misc/regexp.c 388e7f237307c7dfbfb8dde44e097946f6c437801d63f0d7ad63f3320d4e61cc
F ext/misc/remember.c add730f0f7e7436cd15ea3fd6a90fd83c3f706ab44169f7f048438b7d6baa69c F ext/misc/remember.c add730f0f7e7436cd15ea3fd6a90fd83c3f706ab44169f7f048438b7d6baa69c
F ext/misc/rot13.c 51ac5f51e9d5fd811db58a9c23c628ad5f333c173f1fc53c8491a3603d38556c F ext/misc/rot13.c 51ac5f51e9d5fd811db58a9c23c628ad5f333c173f1fc53c8491a3603d38556c
F ext/misc/scrub.c 2a44b0d44c69584c0580ad2553f6290a307a49df4668941d2812135bfb96a946 F ext/misc/scrub.c 2a44b0d44c69584c0580ad2553f6290a307a49df4668941d2812135bfb96a946
@ -616,7 +616,7 @@ F ext/session/sessionstat1.test 5e718d5888c0c49bbb33a7a4f816366db85f59f6a4f97544
F ext/session/sessionwor.test 6fd9a2256442cebde5b2284936ae9e0d54bde692d0f5fd009ecef8511f4cf3fc F ext/session/sessionwor.test 6fd9a2256442cebde5b2284936ae9e0d54bde692d0f5fd009ecef8511f4cf3fc
F ext/session/sqlite3session.c d6f5e3e83b9b0bbc4a8db4837284f0ecc6af5321d4c8e7136380b456b278c46a F ext/session/sqlite3session.c d6f5e3e83b9b0bbc4a8db4837284f0ecc6af5321d4c8e7136380b456b278c46a
F ext/session/sqlite3session.h 683ccbf16e2c2521661fc4c1cf918ce57002039efbcabcd8097fa4bca569104b F ext/session/sqlite3session.h 683ccbf16e2c2521661fc4c1cf918ce57002039efbcabcd8097fa4bca569104b
F ext/session/test_session.c aa29abdcc9011ac02f4fa38e8ede226106eaeee7c3ea7d8b2b999a124e0c368c F ext/session/test_session.c 12e0a2c15fd60f92da4bb29c697c9177ff0c0dbcdc5129a54c47e999f147937a
F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
F ext/wasm/GNUmakefile 311aa0d5edc7006409962cc77cc26560d92f9be69c2c4302e8bbc68189fd02db F ext/wasm/GNUmakefile 311aa0d5edc7006409962cc77cc26560d92f9be69c2c4302e8bbc68189fd02db
F ext/wasm/README-dist.txt 6382cb9548076fca472fb3330bbdba3a55c1ea0b180ff9253f084f07ff383576 F ext/wasm/README-dist.txt 6382cb9548076fca472fb3330bbdba3a55c1ea0b180ff9253f084f07ff383576
@ -789,7 +789,7 @@ F src/status.c cb11f8589a6912af2da3bb1ec509a94dd8ef27df4d4c1a97e0bcf2309ece972b
F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1 F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
F src/tclsqlite.c c6b9d3a0b1100e1e028460c418c41ca180dac5958e96bef79f6799b552522a37 F src/tclsqlite.c c6b9d3a0b1100e1e028460c418c41ca180dac5958e96bef79f6799b552522a37
F src/tclsqlite.h 65e2c761446e1c9fa0342b7d2612a703483643c8b6a316d12a65b745a4727395 F src/tclsqlite.h 65e2c761446e1c9fa0342b7d2612a703483643c8b6a316d12a65b745a4727395
F src/test1.c 07c9b523f90b96f6e9a701476602fa1f82075da19955823316b3fe13eaaa52cc F src/test1.c 9d2da51b4c33633e7370e4068af6d16d2c52b22a5810ec012ac32e77f8397b64
F src/test2.c 7ebc518e6735939d8979273a6f7b1d9b5702babf059f6ad62499f7f60a9eb9a3 F src/test2.c 7ebc518e6735939d8979273a6f7b1d9b5702babf059f6ad62499f7f60a9eb9a3
F src/test3.c e7573aa0f78ee4e070a4bc8c3493941c1aa64d5c66d4825c74c0f055451f432b F src/test3.c e7573aa0f78ee4e070a4bc8c3493941c1aa64d5c66d4825c74c0f055451f432b
F src/test4.c 13e57ae7ec7a959ee180970aef09deed141252fe9bb07c61054f0dfa4f1dfd5d F src/test4.c 13e57ae7ec7a959ee180970aef09deed141252fe9bb07c61054f0dfa4f1dfd5d
@ -810,11 +810,11 @@ F src/test_fs.c c411c40baba679536fc34e2679349f59d8225570aed3488b5b3ef1908525a3d5
F src/test_func.c 858d4dddb7acf88222ebcba7cffb585f6dde83e4a15b838c0d05ccdf8d5219b9 F src/test_func.c 858d4dddb7acf88222ebcba7cffb585f6dde83e4a15b838c0d05ccdf8d5219b9
F src/test_hexio.c 7449504e4bde876ba91b202617a9228c7c8c2e7bd8b957302f3803ac0e9e353c F src/test_hexio.c 7449504e4bde876ba91b202617a9228c7c8c2e7bd8b957302f3803ac0e9e353c
F src/test_init.c 17313332d58e90defc527129d5eda4a08bd6b6e8de7207a231523c8d98fb445e F src/test_init.c 17313332d58e90defc527129d5eda4a08bd6b6e8de7207a231523c8d98fb445e
F src/test_intarray.c e4216aadee9df2de7d1aee7e70f6b22c80ee79ece72a63d57105db74217639e5 F src/test_intarray.c 3fcf8ca7bb5c8776ea83f6aa9b66f8df0d1f37a99207b0097c8486f9c15cedbf
F src/test_intarray.h 6c3534641108cd1bea517a8e117dcba237081310a29a4c35bd2190caa8972293 F src/test_intarray.h 6c3534641108cd1bea517a8e117dcba237081310a29a4c35bd2190caa8972293
F src/test_journal.c a0b9709b2f12b1ec819eea8a1176f283bca6d688a6d4a502bd6fd79786f4e287 F src/test_journal.c a0b9709b2f12b1ec819eea8a1176f283bca6d688a6d4a502bd6fd79786f4e287
F src/test_loadext.c 337056bae59f80b9eb00ba82088b39d0f4fe6dfd F src/test_loadext.c 337056bae59f80b9eb00ba82088b39d0f4fe6dfd
F src/test_malloc.c a0295e022103b14a1bc5e0660cc2af7fbec05e0d029098782e326e50612e69d9 F src/test_malloc.c 4954125ee89aa51d9f641d5cb272cc93ca4cb03dcc7c9c941d70210354c69567
F src/test_md5.c 811a45330c9391933360f998156a8907ee29909c828ab83ac05d329942cbea8f F src/test_md5.c 811a45330c9391933360f998156a8907ee29909c828ab83ac05d329942cbea8f
F src/test_multiplex.c b99d7f43ec859e6b93a40aaa5455420b3ad133053cce3db739498d29ea30735f F src/test_multiplex.c b99d7f43ec859e6b93a40aaa5455420b3ad133053cce3db739498d29ea30735f
F src/test_multiplex.h f0ff5b6f4462bfd46dac165d6375b9530d08089b7bcbe75e88e0926110db5363 F src/test_multiplex.h f0ff5b6f4462bfd46dac165d6375b9530d08089b7bcbe75e88e0926110db5363
@ -2205,8 +2205,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P c847973947de67579fab78a65ecfc90bf59fd5db0b7fa7a9c1abb1fc92213d01 P 3e2875dac27de1525d9c78f38ac5f1fc12fec7e1b43dbdf47798b128fae49084
R 21473fba427f7d039b2fd83376887456 R 6e0293de1d493e0b13b460e55a82a4db
U drh U drh
Z b74c42c31ff873968b8ed05fb8e82534 Z 4c81104bb07f42df2245a2e0f81e374f
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
3e2875dac27de1525d9c78f38ac5f1fc12fec7e1b43dbdf47798b128fae49084 ed83b79100b4345235aec990303c4526874f0c2f8701160c4639a80633ebaf70

View File

@ -5681,9 +5681,11 @@ static int SQLITE_TCLAPI test_stmt_utf8(
sqlite3_stmt *pStmt; sqlite3_stmt *pStmt;
int col; int col;
const char *(*xFunc)(sqlite3_stmt*, int); const char *(*xFunc)(sqlite3_stmt*, int);
const unsigned char *(*xFuncU)(sqlite3_stmt*, int);
const char *zRet; const char *zRet;
xFunc = (const char *(*)(sqlite3_stmt*, int))clientData; xFunc = (const char *(*)(sqlite3_stmt*, int))clientData;
xFuncU = (const unsigned char*(*)(sqlite3_stmt*,int))xFunc;
if( objc!=3 ){ if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_AppendResult(interp, "wrong # args: should be \"",
Tcl_GetString(objv[0]), " STMT column", 0); Tcl_GetString(objv[0]), " STMT column", 0);
@ -5692,7 +5694,11 @@ static int SQLITE_TCLAPI test_stmt_utf8(
if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR; if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;
if( Tcl_GetIntFromObj(interp, objv[2], &col) ) return TCL_ERROR; if( Tcl_GetIntFromObj(interp, objv[2], &col) ) return TCL_ERROR;
zRet = xFunc(pStmt, col); if( xFunc==sqlite3_column_name || xFunc==sqlite3_column_decltype ){
zRet = xFunc(pStmt, col);
}else{
zRet = (const char*)xFuncU(pStmt, col);
}
if( zRet ){ if( zRet ){
Tcl_SetResult(interp, (char *)zRet, 0); Tcl_SetResult(interp, (char *)zRet, 0);
} }
@ -7562,7 +7568,7 @@ static struct LogCallback {
Tcl_Interp *pInterp; Tcl_Interp *pInterp;
Tcl_Obj *pObj; Tcl_Obj *pObj;
} logcallback = {0, 0}; } logcallback = {0, 0};
static void xLogcallback(void *unused, int err, char *zMsg){ static void xLogcallback(void *unused, int err, const char *zMsg){
Tcl_Obj *pNew = Tcl_DuplicateObj(logcallback.pObj); Tcl_Obj *pNew = Tcl_DuplicateObj(logcallback.pObj);
Tcl_IncrRefCount(pNew); Tcl_IncrRefCount(pNew);
Tcl_ListObjAppendElement( Tcl_ListObjAppendElement(
@ -8601,7 +8607,6 @@ static int SQLITE_TCLAPI test_decode_hexdb(
const char *zIn = 0; const char *zIn = 0;
unsigned char *a = 0; unsigned char *a = 0;
int n = 0; int n = 0;
int lineno = 0;
int i, iNext; int i, iNext;
int iOffset = 0; int iOffset = 0;
int j, k; int j, k;
@ -8613,7 +8618,6 @@ static int SQLITE_TCLAPI test_decode_hexdb(
} }
zIn = Tcl_GetString(objv[1]); zIn = Tcl_GetString(objv[1]);
for(i=0; zIn[i]; i=iNext){ for(i=0; zIn[i]; i=iNext){
lineno++;
for(iNext=i; zIn[iNext] && zIn[iNext]!='\n'; iNext++){} for(iNext=i; zIn[iNext] && zIn[iNext]!='\n'; iNext++){}
if( zIn[iNext]=='\n' ) iNext++; if( zIn[iNext]=='\n' ) iNext++;
while( zIn[i]==' ' || zIn[i]=='\t' ){ i++; } while( zIn[i]==' ' || zIn[i]=='\t' ){ i++; }

View File

@ -61,7 +61,8 @@ struct intarray_cursor {
/* /*
** Free an sqlite3_intarray object. ** Free an sqlite3_intarray object.
*/ */
static void intarrayFree(sqlite3_intarray *p){ static void intarrayFree(void *pX){
sqlite3_intarray *p = (sqlite3_intarray*)pX;
if( p->xFree ){ if( p->xFree ){
p->xFree(p->a); p->xFree(p->a);
} }

View File

@ -41,8 +41,9 @@ static struct MemFault {
** fire on any simulated malloc() failure. ** fire on any simulated malloc() failure.
*/ */
static void sqlite3Fault(void){ static void sqlite3Fault(void){
static int cnt = 0; static u64 cnt = 0;
cnt++; cnt++;
if( cnt>((u64)1<<63) ) abort();
} }
/* /*
@ -52,8 +53,9 @@ static void sqlite3Fault(void){
** This routine only runs on the first such failure. ** This routine only runs on the first such failure.
*/ */
static void sqlite3FirstFault(void){ static void sqlite3FirstFault(void){
static int cnt2 = 0; static u64 cnt2 = 0;
cnt2++; cnt2++;
if( cnt2>((u64)1<<63) ) abort();
} }
/* /*