]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix compiler warnings.
authordrh <>
Fri, 26 Jun 2026 02:03:54 +0000 (02:03 +0000)
committerdrh <>
Fri, 26 Jun 2026 02:03:54 +0000 (02:03 +0000)
FossilOrigin-Name: 512d9449451c883a68a543f5ab8372b31324baf6216de7f71f7fc7589f2e1aab

ext/fts5/fts5_index.c
ext/misc/series.c
manifest
manifest.uuid
src/backup.c
src/func.c
test/e_fkey.test

index 6e6e11cff6ed9cbd69df2da4766132e2e0302489..a1d6b233a3c8dc69892d8ffb05e4faaa5a62d6f5 100644 (file)
@@ -7990,8 +7990,8 @@ static void fts5IndexTombstoneRebuild(
 ){
   const int MINSLOT = 32;
   int nSlotPerPage = MAX(MINSLOT, (p->pConfig->pgsz - 8) / szKey);
-  int nSlot = 0;                  /* Number of slots in each output page */
-  int nOut = 0;
+  i64 nSlot = 0;                  /* Number of slots in each output page */
+  i64 nOut = 0;
 
   /* Figure out how many output pages (nOut) and how many slots per 
   ** page (nSlot).  There are three possibilities: 
@@ -8022,20 +8022,20 @@ static void fts5IndexTombstoneRebuild(
       nOut = 0;
     }else{
       nOut = 1;
-      nSlot = MAX(nElem*4, MINSLOT);
+      nSlot = MAX((i64)nElem*4, MINSLOT);
     }
   }
   if( nOut==0 ){
     /* Case 3. */
-    nOut = (pSeg->nPgTombstone * 2 + 1);
+    nOut = ((i64)pSeg->nPgTombstone * 2 + 1);
     nSlot = nSlotPerPage;
   }
 
   /* Allocate the required array and output pages */
   while( 1 ){
     int res = 0;
-    int ii = 0;
-    int szPage = 0;
+    i64 ii = 0;
+    i64 szPage = 0;
     Fts5Data **apOut = 0;
 
     /* Allocate space for the new hash table */
index 1b456d8f57041a9432882c4d1555a9e1752731ad..9859a0c5cd09f1d327726fd1dec7d163300401e8 100644 (file)
@@ -400,6 +400,16 @@ static double seriesFloor(double r){
 }
 #endif
 
+/* Convert a floating point value to its closest integer.  Do so in
+** a way that avoids 'outside the range of representable values' warnings
+** from UBSAN.
+*/
+sqlite3_int64 seriesRealToI64(double r){
+  if( r<-9223372036854774784.0 ) return SMALLEST_INT64;
+  if( r>+9223372036854774784.0 ) return LARGEST_INT64;
+  return (sqlite3_int64)r;
+}
+
 /*
 ** This method is called to "rewind" the series_cursor object back
 ** to the first row of output.  This method is always called at least
@@ -522,7 +532,7 @@ static int seriesFilter(
          && r>=(double)SMALLEST_INT64
          && r<=(double)LARGEST_INT64
         ){
-          iMin = iMax = (sqlite3_int64)r;
+          iMin = iMax = seriesRealToI64(r);
         }else{
           goto series_no_rows;
         }
@@ -538,10 +548,7 @@ static int seriesFilter(
           }else if( r>(double)LARGEST_INT64 ){
             goto series_no_rows;
           }else{
-            iMin = (sqlite3_int64)seriesCeil(r);
-            if( iMin<0 && r>0.0 ){
-              iMin = LARGEST_INT64;
-            }
+            iMin = seriesRealToI64(seriesCeil(r));
             if( (idxNum & 0x0200)!=0 && r==seriesCeil(r) ){
               if( iMin==LARGEST_INT64 ) goto series_no_rows;
               iMin++;
@@ -566,10 +573,8 @@ static int seriesFilter(
           }else if( r<=(double)SMALLEST_INT64 ){
             goto series_no_rows;
           }else{
-            iMax = (sqlite3_int64)seriesFloor(r);
-            if( iMax<0 && r>0.0 ){
-              iMax = LARGEST_INT64;
-            }else if( (idxNum & 0x2000)!=0 && r==seriesFloor(r) ){
+            iMax = seriesRealToI64(seriesFloor(r));
+            if( (idxNum & 0x2000)!=0 && r==seriesFloor(r) ){
               if( iMax==SMALLEST_INT64 ) goto series_no_rows;
               iMax--;
             }
index 9f349aff15b4afec04da380e24fe4cfdfdc24749..6f25cdbc05c33f39e34f9c1a435a3c51b66be7c0 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Have\ssqlite3_drop_modules()\stake\sthe\sdatabase\smutex.
-D 2026-06-25T14:47:46.298
+C Fix\scompiler\swarnings.
+D 2026-06-26T02:03:54.975
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -113,7 +113,7 @@ F ext/fts5/fts5_buffer.c dcc3f0352339fe79c9d8abbc1c2009bc3469206467880bf43558447
 F ext/fts5/fts5_config.c bfba970fe1e4eed18ee57c8d51458e226db9a960ddf775c5e50e3d76603a667e
 F ext/fts5/fts5_expr.c b906c59e9e842805cc3eea4e131b822e586bb01260e542f67920c61798dcb53d
 F ext/fts5/fts5_hash.c d5871df92ce3fa210a650cf419ee916b87c29977e86084d06612edf772bff6f5
-F ext/fts5/fts5_index.c 523f9c3aff08a432dbd0657c885e4e52ea48fa201388880426a1089a2a6f6116
+F ext/fts5/fts5_index.c 7c92dfcf69d66e1835ed5f57ccd9f2e3816b9f52e34ff0de5f65076bcf09c1e7
 F ext/fts5/fts5_main.c b0fed47b3b4420ba6810373480a75bc28a9c0b7d16478d19a396436fb3ff17d7
 F ext/fts5/fts5_storage.c 46b0024fdd8002fbfba162230e5cc212c8f019ba4075396860354bfaf549a546
 F ext/fts5/fts5_tcl.c 2be6cc14f9448f720fd4418339cd202961a0801ea9424cb3d9de946f8f5a051c
@@ -393,7 +393,7 @@ F ext/misc/randomjson.c ef835fc64289e76ac4873b85fe12f9463a036168d7683cf2b773e36e
 F ext/misc/regexp.c 9dada9e9aa91f0cc23e35429e5d1111f110cc201b4c8dcc49aa6d2fc4b2a865d
 F ext/misc/remember.c add730f0f7e7436cd15ea3fd6a90fd83c3f706ab44169f7f048438b7d6baa69c
 F ext/misc/rot13.c 51ac5f51e9d5fd811db58a9c23c628ad5f333c173f1fc53c8491a3603d38556c
-F ext/misc/series.c 8612317330587e4cfeb0ae7ffe2f06fe86e66f94a0f5bbb80d8fb46f89e9f0ad
+F ext/misc/series.c ba66183ae4da6875e5cdafc065322118fd7f455a568ea2f22b45eff85f639f42
 F ext/misc/sha1.c 8bf60344c11a525384c2efd1ae77f160b06be336db679effaadf292d4b41451c
 F ext/misc/shathree.c fd22d70620f86a0467acfdd3acd8435d5cb54eb1e2d9ff36ae44e389826993df
 F ext/misc/showauth.c 732578f0fe4ce42d577e1c86dc89dd14a006ab52
@@ -672,7 +672,7 @@ F src/alter.c d7cbe4332a7a2c3a21ab58ee2609efade493f6ae78254613ada0759898629ee3
 F src/analyze.c 42ed904f4a81d0e4f32491e10ff8ea3cdf2f98a29b04a015f0a29046b32b4e0f
 F src/attach.c c58278c7d2d954785591c4fde81669ec3e4d52f348c453b028a19ae8adf4f338
 F src/auth.c ebec42df26b34a62b6750d30d9c2c03554a1c522020182476f7729a439fef04f
-F src/backup.c 89de631678bcbb3ad46f8a8bb43fe4b87b8ada42accd1fe5def363d352ac26d3
+F src/backup.c a3181d1a979bca40dd2b60393cf664c9659e71c25938661c1d3a786e489880f0
 F src/bitvec.c e242d4496774dfc88fa278177dd23b607dce369ccafb3f61b41638eea2c9b399
 F src/btmutex.c 30dada73a819a1ef5b7583786370dce1842e12e1ad941e4d05ac29695528daea
 F src/btree.c c69601aac556129f64d9e8221441572c89479b720a51cbf738658fe0797d7107
@@ -689,7 +689,7 @@ F src/delete.c 1f2268d6fe3c78fc1bf794ba65d7026498b78e2342ffaf85825dedae546e6fde
 F src/expr.c a7b8c6f9e8f63de44a46e76304ddbebf59c2a423ddc8c3ec31a691303e780078
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 931f74cec1dc8038a0217ef340c91ce147dd1bbed08dc40c47ee0ec6edfffb08
-F src/func.c 6f6abe78831fba92ebb5c3d347273f37656ae357f5902e1fb48aa297d57fbcc6
+F src/func.c 03d6ae4f1b5ccdf44b68691ce7cb6353cf3aa5984fb75d69dd41b5b21031e836
 F src/global.c a19e4b1ca1335f560e9560e590fc13081e21f670643367f99cb9e8f9dc7d615b
 F src/hash.c 03c8c0f4be9e8bcb6de65aa26d34a61d48a9430747084a69f9469fbb00ea52ca
 F src/hash.h 46b92795a95bfefb210f52f0c316e9d7cdbcdd7e7fcfb0d8be796d3a5767cddf
@@ -1070,7 +1070,7 @@ F test/e_delete.test ab39084f26ae1f033c940b70ebdbbd523dc4962e
 F test/e_droptrigger.test 235c610f8bf8ec44513e222b9085c7e49fad65ad0c1975ac2577109dd06fd8fa
 F test/e_dropview.test 74e405df7fa0f762e0c9445b166fe03955856532e2bb234c372f7c51228d75e7
 F test/e_expr.test 9bdb347b78b9f4eff9153ea97797facc179a821898588471a70808b4471a69b0
-F test/e_fkey.test feeba6238aeff9d809fb6236b351da8df4ae9bda89e088e54526b31a0cbfeec5
+F test/e_fkey.test 2a4ad815372a4b57dad91cd37932e18e68bf545f6c946e9a4cb3e7bde92b8e84
 F test/e_fts3.test 17ba7c373aba4d4f5696ba147ee23fd1a1ef70782af050e03e262ca187c5ee07
 F test/e_insert.test f02f7f17852b2163732c6611d193f84fc67bc641fb4882c77a464076e5eba80e
 F test/e_reindex.test 027bb13d2c7e9e865886eed6349f126a273f8037899b636bf5fb53c7fc815921
@@ -2200,9 +2200,11 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 6826c17021eb1af5ed4266fc26486532d0fd4fb1494a582a4ff84fb59ecec254
-Q +533e59b40c4ce6b3579cb85deb9cb1a7179aa2cf4f91d8848558087869653a76
-R 05d8c7290d11ed14dfa0aae5fa603787
-U dan
-Z 09beeeb4fb08ccb590d2ff24cf23ca0a
+P 7927329d25caab7f607c8857bc6b6fc56a9ba99fbd15087076a7983b2369b4eb
+Q +4247c5d9afb162a3e9f334b5121f0df2bfddb916054fa1e6fadb65b1983a7ed8
+Q +dae75754693143603c8fc9df3f0046dec3577e17a2858e877d238dd0f46899f4
+Q +dd0c161fcd1619518cd4671d64afb6afeec44c140ec176ccb8616d381a88f42f
+R ed61d53092abc225b0843853d792b3d6
+U drh
+Z 8af0967ef593777dd5ea14bcfbf03b4b
 # Remove this line to create a well-formed Fossil manifest.
index 68ec765466b5e3ac398460729c95ab39493b5dec..af4020c6d2152b581af9c8ddb00cb0361ee0aa95 100644 (file)
@@ -1 +1 @@
-7927329d25caab7f607c8857bc6b6fc56a9ba99fbd15087076a7983b2369b4eb
+512d9449451c883a68a543f5ab8372b31324baf6216de7f71f7fc7589f2e1aab
index c46d896293795bb77e0b868f88529ac3c69310d3..4f09d0352ba93c9c02b60caa29e9a6d7b1f14b65 100644 (file)
@@ -322,7 +322,7 @@ static void attachBackupObject(sqlite3_backup *p){
 */
 int sqlite3_backup_step(sqlite3_backup *p, int nPage){
   int rc;
-  int destMode;       /* Destination journal mode */
+  int destMode = 0;   /* Destination journal mode */
   int pgszSrc = 0;    /* Source page size */
   int pgszDest = 0;   /* Destination page size */
 
index 98f67a4187c6bc8204b2ce0be9d62e10e55a493d..d86588d853bb0cf71d575e2a70177f7c917a9081 100644 (file)
@@ -2986,7 +2986,7 @@ static void percentSort(double *a, unsigned int n){
         i++;
       }
     }while( i<iGt );
-    if( iLt>n/2 ){
+    if( iLt>(int)(n/2) ){
       if( n-iGt>=2 ) percentSort(a+iGt, n-iGt);
       n = iLt;
     }else{
index 3662a39981844d96250a3f2360e0c0e8d80efab7..a4ba78e04df5610fb8671b28b3e729d32d57b8aa 100644 (file)
@@ -2982,14 +2982,14 @@ if {[clang_sanitize_address]==0} {
   } {0 0}
   do_test e_fkey-63.1.2 {
     test_on_delete_recursion [expr $SQLITE_MAX_TRIGGER_DEPTH+1]
-  } {1 {too many levels of trigger recursion}}
+  } {1 {triggers nested too deep}}
   do_test e_fkey-63.1.3 {
     sqlite3_limit db SQLITE_LIMIT_TRIGGER_DEPTH 5
       test_on_delete_recursion 5
   } {0 0}
   do_test e_fkey-63.1.4 {
     test_on_delete_recursion 6
-  } {1 {too many levels of trigger recursion}}
+  } {1 {triggers nested too deep}}
   do_test e_fkey-63.1.5 {
     sqlite3_limit db SQLITE_LIMIT_TRIGGER_DEPTH 1000000
   } {5}
@@ -2998,14 +2998,14 @@ if {[clang_sanitize_address]==0} {
   } {0 0}
   do_test e_fkey-63.2.2 {
     test_on_update_recursion [expr $SQLITE_MAX_TRIGGER_DEPTH+1]
-  } {1 {too many levels of trigger recursion}}
+  } {1 {triggers nested too deep}}
   do_test e_fkey-63.2.3 {
     sqlite3_limit db SQLITE_LIMIT_TRIGGER_DEPTH 5
       test_on_update_recursion 5
   } {0 0}
   do_test e_fkey-63.2.4 {
     test_on_update_recursion 6
-  } {1 {too many levels of trigger recursion}}
+  } {1 {triggers nested too deep}}
   do_test e_fkey-63.2.5 {
     sqlite3_limit db SQLITE_LIMIT_TRIGGER_DEPTH 1000000
   } {5}