From: drh <> Date: Fri, 26 Jun 2026 02:03:54 +0000 (+0000) Subject: Fix compiler warnings. X-Git-Tag: release~12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=36d1b6d6abd5809b22aacf49d722dfba97749ffe;p=thirdparty%2Fsqlite.git Fix compiler warnings. FossilOrigin-Name: 512d9449451c883a68a543f5ab8372b31324baf6216de7f71f7fc7589f2e1aab --- diff --git a/ext/fts5/fts5_index.c b/ext/fts5/fts5_index.c index 6e6e11cff6..a1d6b233a3 100644 --- a/ext/fts5/fts5_index.c +++ b/ext/fts5/fts5_index.c @@ -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 */ diff --git a/ext/misc/series.c b/ext/misc/series.c index 1b456d8f57..9859a0c5cd 100644 --- a/ext/misc/series.c +++ b/ext/misc/series.c @@ -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--; } diff --git a/manifest b/manifest index 9f349aff15..6f25cdbc05 100644 --- 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. diff --git a/manifest.uuid b/manifest.uuid index 68ec765466..af4020c6d2 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -7927329d25caab7f607c8857bc6b6fc56a9ba99fbd15087076a7983b2369b4eb +512d9449451c883a68a543f5ab8372b31324baf6216de7f71f7fc7589f2e1aab diff --git a/src/backup.c b/src/backup.c index c46d896293..4f09d0352b 100644 --- a/src/backup.c +++ b/src/backup.c @@ -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 */ diff --git a/src/func.c b/src/func.c index 98f67a4187..d86588d853 100644 --- a/src/func.c +++ b/src/func.c @@ -2986,7 +2986,7 @@ static void percentSort(double *a, unsigned int n){ i++; } }while( in/2 ){ + if( iLt>(int)(n/2) ){ if( n-iGt>=2 ) percentSort(a+iGt, n-iGt); n = iLt; }else{ diff --git a/test/e_fkey.test b/test/e_fkey.test index 3662a39981..a4ba78e04d 100644 --- a/test/e_fkey.test +++ b/test/e_fkey.test @@ -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}