]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
GCC 13 has become more quite pedantic about the signature of functions matching the
authordrh <>
Mon, 13 Jan 2025 11:28:34 +0000 (11:28 +0000)
committerdrh <>
Mon, 13 Jan 2025 11:28:34 +0000 (11:28 +0000)
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

ext/misc/closure.c
ext/misc/regexp.c
ext/session/test_session.c
manifest
manifest.uuid
src/test1.c
src/test_intarray.c
src/test_malloc.c

index 79a5a21d1e6f43a6aa3b0c0fea9ecd114bba7e76..267ae1c424b26d2f9206e102f5a75398516d9199 100644 (file)
@@ -588,12 +588,17 @@ static int closureOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor){
   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
 ** to indicate that it is at EOF.
 */
 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->zIdColumn);
   sqlite3_free(pCur->zParentColumn);
index a50008ca355a02b49436d6f48405dba1430cd681..71c7ea4c22ec56653d8751d83cf709817f479b95 100644 (file)
@@ -656,7 +656,8 @@ static const char *re_subcompile_string(ReCompiled *p){
 ** regular expression.  Applications should invoke this routine once
 ** 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 ){
     sqlite3_free(pRe->aOp);
     sqlite3_free(pRe->aArg);
index 29aeadf537fd1320cee54a8ad3ca6c793a22b444..41d6aaa10921cf2c5f5bc6f5c3d2369daa88fa67 100644 (file)
@@ -719,7 +719,6 @@ static int replace_handler(
   const char *zTab;               /* Name of table conflict is on */
   int nCol;                       /* Number of columns in table zTab */
   int i;
-  int x = 0;
 
   sqlite3changeset_op(pIter, &zTab, &nCol, &op, 0);
 
@@ -728,7 +727,6 @@ static int replace_handler(
       sqlite3_value *pVal;
       sqlite3changeset_old(pIter, i, &pVal);
       sqlite3_value_text16(pVal);
-      x++;
     }
   }
 
@@ -737,7 +735,6 @@ static int replace_handler(
       sqlite3_value *pVal;
       sqlite3changeset_new(pIter, i, &pVal);
       sqlite3_value_text16(pVal);
-      x++;
     }
   }
 
index ba912442f406b01551cffa562ad956a207f6c506..d079f815d53a1618080453a5723cc96ca843d624 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sharmless\s"implicit\sfall\sthrough"\swarnings\sthat\ssuddenly\sappeared\swhen\nI\supgraded\sto\sgcc-13.
-D 2025-01-11T16:28:41.860
+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-13T11:28:34.810
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@@ -408,7 +408,7 @@ F ext/misc/btreeinfo.c cb952620eedf5c0b7625b678f0f08e54d2ec0011d4e50efda5ebdc97f
 F ext/misc/carray.c 34fac63770971611c5285de0a9f0ac67d504eaf66be891f637add9290f1c76a5
 F ext/misc/carray.h 503209952ccf2431c7fd899ebb92bf46bf7635b38aace42ec8aa1b8d7b6e98a5
 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/compress.c 2c79a74330e0e0ba6cb3f7397f8ba5af12d46377ef5d3ee075e12dd8a6ed57f0
 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/qpvtab.c fc189e127f68f791af90a487f4460ec91539a716daf45a0c357e963fd47cc06c
 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/rot13.c 51ac5f51e9d5fd811db58a9c23c628ad5f333c173f1fc53c8491a3603d38556c
 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/sqlite3session.c d6f5e3e83b9b0bbc4a8db4837284f0ecc6af5321d4c8e7136380b456b278c46a
 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/GNUmakefile 311aa0d5edc7006409962cc77cc26560d92f9be69c2c4302e8bbc68189fd02db
 F ext/wasm/README-dist.txt 6382cb9548076fca472fb3330bbdba3a55c1ea0b180ff9253f084f07ff383576
@@ -789,7 +789,7 @@ F src/status.c cb11f8589a6912af2da3bb1ec509a94dd8ef27df4d4c1a97e0bcf2309ece972b
 F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
 F src/tclsqlite.c c6b9d3a0b1100e1e028460c418c41ca180dac5958e96bef79f6799b552522a37
 F src/tclsqlite.h 65e2c761446e1c9fa0342b7d2612a703483643c8b6a316d12a65b745a4727395
-F src/test1.c 07c9b523f90b96f6e9a701476602fa1f82075da19955823316b3fe13eaaa52cc
+F src/test1.c 9d2da51b4c33633e7370e4068af6d16d2c52b22a5810ec012ac32e77f8397b64
 F src/test2.c 7ebc518e6735939d8979273a6f7b1d9b5702babf059f6ad62499f7f60a9eb9a3
 F src/test3.c e7573aa0f78ee4e070a4bc8c3493941c1aa64d5c66d4825c74c0f055451f432b
 F src/test4.c 13e57ae7ec7a959ee180970aef09deed141252fe9bb07c61054f0dfa4f1dfd5d
@@ -810,11 +810,11 @@ F src/test_fs.c c411c40baba679536fc34e2679349f59d8225570aed3488b5b3ef1908525a3d5
 F src/test_func.c 858d4dddb7acf88222ebcba7cffb585f6dde83e4a15b838c0d05ccdf8d5219b9
 F src/test_hexio.c 7449504e4bde876ba91b202617a9228c7c8c2e7bd8b957302f3803ac0e9e353c
 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_journal.c a0b9709b2f12b1ec819eea8a1176f283bca6d688a6d4a502bd6fd79786f4e287
 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_multiplex.c b99d7f43ec859e6b93a40aaa5455420b3ad133053cce3db739498d29ea30735f
 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.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P c847973947de67579fab78a65ecfc90bf59fd5db0b7fa7a9c1abb1fc92213d01
-R 21473fba427f7d039b2fd83376887456
+P 3e2875dac27de1525d9c78f38ac5f1fc12fec7e1b43dbdf47798b128fae49084
+R 6e0293de1d493e0b13b460e55a82a4db
 U drh
-Z b74c42c31ff873968b8ed05fb8e82534
+Z 4c81104bb07f42df2245a2e0f81e374f
 # Remove this line to create a well-formed Fossil manifest.
index 899a15f66c2278fe991d52ea69996e90fb144166..d415ffab2c3d92aac41f2d6a0eb77fa9eae82dca 100644 (file)
@@ -1 +1 @@
-3e2875dac27de1525d9c78f38ac5f1fc12fec7e1b43dbdf47798b128fae49084
+ed83b79100b4345235aec990303c4526874f0c2f8701160c4639a80633ebaf70
index 4212c73232ae5b7c79fefce5da769282b045c77b..c204335dccfb5ec776ae770667d6806948684474 100644 (file)
@@ -5681,9 +5681,11 @@ static int SQLITE_TCLAPI test_stmt_utf8(
   sqlite3_stmt *pStmt;
   int col;
   const char *(*xFunc)(sqlite3_stmt*, int);
+  const unsigned char *(*xFuncU)(sqlite3_stmt*, int);
   const char *zRet;
 
   xFunc = (const char *(*)(sqlite3_stmt*, int))clientData;
+  xFuncU = (const unsigned char*(*)(sqlite3_stmt*,int))xFunc;
   if( objc!=3 ){
     Tcl_AppendResult(interp, "wrong # args: should be \"", 
        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( 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 ){
     Tcl_SetResult(interp, (char *)zRet, 0);
   }
@@ -7562,7 +7568,7 @@ static struct LogCallback {
   Tcl_Interp *pInterp;
   Tcl_Obj *pObj;
 } 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_IncrRefCount(pNew);
   Tcl_ListObjAppendElement(
@@ -8601,7 +8607,6 @@ static int SQLITE_TCLAPI test_decode_hexdb(
   const char *zIn = 0;
   unsigned char *a = 0;
   int n = 0;
-  int lineno = 0;
   int i, iNext;
   int iOffset = 0;
   int j, k;
@@ -8613,7 +8618,6 @@ static int SQLITE_TCLAPI test_decode_hexdb(
   }
   zIn = Tcl_GetString(objv[1]);
   for(i=0; zIn[i]; i=iNext){
-    lineno++;
     for(iNext=i; zIn[iNext] && zIn[iNext]!='\n'; iNext++){}
     if( zIn[iNext]=='\n' ) iNext++;
     while( zIn[i]==' ' || zIn[i]=='\t' ){ i++; }
index 16c1df2e9cedc0a6d55be6b44c3232e9c3c54fba..9e4629467e6de729007d2942daaee3ea42063748 100644 (file)
@@ -61,7 +61,8 @@ struct intarray_cursor {
 /*
 ** 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 ){
     p->xFree(p->a);
   }
index 21faa0d2910df6fad2fbe9f5f15a151c30d0d0f7..8d6c4fa505023de8efb0d81d958c3e16ac61c2e5 100644 (file)
@@ -41,8 +41,9 @@ static struct MemFault {
 ** fire on any simulated malloc() failure.
 */
 static void sqlite3Fault(void){
-  static int cnt = 0;
+  static u64 cnt = 0;
   cnt++;
+  if( cnt>((u64)1<<63) ) abort();
 }
 
 /*
@@ -52,8 +53,9 @@ static void sqlite3Fault(void){
 ** This routine only runs on the first such failure.
 */
 static void sqlite3FirstFault(void){
-  static int cnt2 = 0;
+  static u64 cnt2 = 0;
   cnt2++;
+  if( cnt2>((u64)1<<63) ) abort();
 }
 
 /*