From: drh <> Date: Thu, 19 Oct 2023 00:25:35 +0000 (+0000) Subject: Fix a false-positive in run-time error checking. X-Git-Tag: version-3.44.0~92 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=69ff726d4d82eb070f798f854472b21518627c59;p=thirdparty%2Fsqlite.git Fix a false-positive in run-time error checking. FossilOrigin-Name: cd63eec0758960d9ee63d7b964ec62e2bd622f8c94a58bd9556046381ffa18d0 --- diff --git a/manifest b/manifest index ec337ca6ad..28a5a3f0e5 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C JS:\sreplace\sone\serrant\sreference\sto\s'self'\swith\s'globalThis'\sand\sremove\sa\sseparate\sdead-code\s'self'\sreference. -D 2023-10-17T23:35:47.218 +C Fix\sa\sfalse-positive\sin\srun-time\serror\schecking. +D 2023-10-19T00:25:35.141 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -668,7 +668,7 @@ F src/date.c eebc54a00e888d3c56147779e9f361b77d62fd69ff2008c5373946aa1ba1d574 F src/dbpage.c 80e46e1df623ec40486da7a5086cb723b0275a6e2a7b01d9f9b5da0f04ba2782 F src/dbstat.c 3b677254d512fcafd4d0b341bf267b38b235ccfddbef24f9154e19360fa22e43 F src/delete.c cb766727c78e715f9fb7ec8a7d03658ed2a3016343ca687acfcec9083cdca500 -F src/expr.c 8a5045ac7aae5ecebe7236ec05841693b5a0012af70a4d73933333172546c50d +F src/expr.c 243ef7e11095afe09cccd157ce5f42e637ae34f064ebb6ad12297e7af02f9e5a F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fkey.c a7fcbf7e66d14dbb73cf49f31489ebf66d0e6006c62b95246924a3bae9f37b36 F src/func.c e8d7b3587a225f4f1116f720b72090511fe9feb936e960bd26a053cea6a17a63 @@ -792,7 +792,7 @@ F src/vdbe.c 300b1ac9339a5b7db9ccd48c1a13c3d71722da13352a38ee042ca0a399b4dd7e F src/vdbe.h 41485521f68e9437fdb7ec4a90f9d86ab294e9bb8281e33b235915e29122cfc0 F src/vdbeInt.h 949669dfd8a41550d27dcb905b494f2ccde9a2e6c1b0b04daa1227e2e74c2b2c F src/vdbeapi.c fe654b1f54e1feebcaed6c2ae3ed035cc65bfeb9a1169bed866abc42bfc63ff6 -F src/vdbeaux.c 1a11270d4b7cd1fad29a7c3f1d175a816fca2fb6ecaa3e5ecbe1eb4baf575f75 +F src/vdbeaux.c 2ebd996a266851d82b93346136fc074c8f9f31a5b139bd76a484b1a6e8b52f1d F src/vdbeblob.c 13f9287b55b6356b4b1845410382d6bede203ceb29ef69388a4a3d007ffacbe5 F src/vdbemem.c c936e9002af4993b84c4eb7133d6b1190efe46d391cc86117ecd67ba17b1a04b F src/vdbesort.c 237840ca1947511fa59bd4e18b9eeae93f2af2468c34d2427b059f896230a547 @@ -2132,8 +2132,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 37ff0d8e7f91c32e8c53bb015280be47c66bf599281b640a8d3fd41335b55289 -R 02d0e707fb1cf1d9efb28ab84c90dee6 -U stephan -Z 455d6debd64ad95ee72e444517f71e6f +P da1a47932ea96755b1e11fc2547ce11780b87846af6885857318ff18f1e62c31 +R 2dc67760b798e4f6a6331f176070e794 +U drh +Z a96532a01a60297c343bac9ca71674a1 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 7700963681..d2f4420581 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -da1a47932ea96755b1e11fc2547ce11780b87846af6885857318ff18f1e62c31 \ No newline at end of file +cd63eec0758960d9ee63d7b964ec62e2bd622f8c94a58bd9556046381ffa18d0 \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index f7290262e5..67863395dc 100644 --- a/src/expr.c +++ b/src/expr.c @@ -4336,7 +4336,7 @@ expr_code_doover: #ifdef SQLITE_VDBE_COVERAGE /* Verify that the OP_Null above is exercised by tests ** tag-20230325-2 */ - sqlite3VdbeAddOp2(v, OP_NotNull, target, 1); + sqlite3VdbeAddOp3(v, OP_NotNull, target, 1, 20230325); VdbeCoverageNeverTaken(v); #endif break; diff --git a/src/vdbeaux.c b/src/vdbeaux.c index 1ed7a6dca3..c8dbe1e6d1 100644 --- a/src/vdbeaux.c +++ b/src/vdbeaux.c @@ -1002,6 +1002,10 @@ void sqlite3VdbeNoJumpsOutsideSubrtn( int iDest = pOp->p2; /* Jump destination */ if( iDest==0 ) continue; if( pOp->opcode==OP_Gosub ) continue; + if( pOp->p3==20230325 && pOp->opcode==OP_NotNull ){ + /* This is a deliberately taken illegal branch. tag-20230325-2 */ + continue; + } if( iDest<0 ){ int j = ADDR(iDest); assert( j>=0 );