From 11e4fdb94861a92e9e14476a8a7cea58d559bb1b Mon Sep 17 00:00:00 2001 From: drh <> Date: Fri, 3 Dec 2021 14:57:05 +0000 Subject: [PATCH] Fix unreachable branches resulting from prior optimizations. FossilOrigin-Name: f3d6853ee80be2dc6d7236d98b850beb0e1931a624d4f5b194c8db742cde7ec5 --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/btree.c | 6 ++---- src/whereexpr.c | 2 +- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/manifest b/manifest index 1a4e57e525..dc6fa42308 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\san\sover-length\ssource\scode\sline\sin\sbuild.c.\s\sNo\slogic\schanges. -D 2021-12-03T14:43:49.562 +C Fix\sunreachable\sbranches\sresulting\sfrom\sprior\soptimizations. +D 2021-12-03T14:57:05.912 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -491,7 +491,7 @@ F src/auth.c f4fa91b6a90bbc8e0d0f738aa284551739c9543a367071f55574681e0f24f8cf F src/backup.c 3014889fa06e20e6adfa0d07b60097eec1f6e5b06671625f476a714d2356513d F src/bitvec.c 7c849aac407230278445cb069bebc5f89bf2ddd87c5ed9459b070a9175707b3d F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6 -F src/btree.c be33f2b299c2d1dcdd6c033368731b81c13c2dbc72fe15af64a43871f6cdb437 +F src/btree.c 81feddbcc60d524518a7afc713b6dab0ad7caadb7370433f117c8c557dcdc889 F src/btree.h 74d64b8f28cfa4a894d14d4ed64fa432cd697b98b61708d4351482ae15913e22 F src/btreeInt.h ee9348c4cb9077243b049edc93a82c1f32ca48baeabf2140d41362b9f9139ff7 F src/build.c 70759481a346322934332485381805c9ba9442bbe7959bf40bdc14140c832517 @@ -640,7 +640,7 @@ F src/walker.c f890a3298418d7cba3b69b8803594fdc484ea241206a8dfa99db6dd36f8cbb3b F src/where.c b50391df607937593596fbb8ea39f673d9a3715a65750567b442d22dd20720ca F src/whereInt.h 1630d9418512b080598e9a72b8af6b8bd1b9ab13fee1458f151762b6df206791 F src/wherecode.c 1f5b62f46d284c8886945eb7438415bc27e23e87bb60b9ee468fa6bd31268f33 -F src/whereexpr.c ac082ec617802e7fc9c190aa0819696a7144a8aa0cad91948323b83720e5105c +F src/whereexpr.c 779b3230a76510de63f5d45e47df931be05320a8f290c287130a30344c73ea1f F src/window.c 5d3b397b0c026d0ff5890244ac41359e524c01ae31e78782e1ff418c3e271a9e F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/affinity2.test ce1aafc86e110685b324e9a763eab4f2a73f737842ec3b687bd965867de90627 @@ -1933,7 +1933,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 9df939716ace8cfe60340bbe83fc52d452ea40c29c856c588f9a1b8973282391 -R 9393106c7ba9e646319a5d3ddfef6c69 +P b9db5c5fc618a36d70ea2aced9c96094d665935b5c15a987013334f1bd79eb00 +R 62fc2562c9bdca584bc5f7af404e360c U drh -Z 97067e9e4125723429bb82f48b4944e2 +Z a47d8ad1f6786c210062821f95b3efde diff --git a/manifest.uuid b/manifest.uuid index e4938138ce..a6d9596b1b 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b9db5c5fc618a36d70ea2aced9c96094d665935b5c15a987013334f1bd79eb00 \ No newline at end of file +f3d6853ee80be2dc6d7236d98b850beb0e1931a624d4f5b194c8db742cde7ec5 \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index 7dfce901ab..5060140731 100644 --- a/src/btree.c +++ b/src/btree.c @@ -2722,10 +2722,8 @@ static SQLITE_NOINLINE int allocateTempSpace(BtShared *pBt){ ** beginning of pTmpSpace as an area available to prepend the ** left-child pointer to the beginning of a cell. */ - if( pBt->pTmpSpace ){ - memset(pBt->pTmpSpace, 0, 8); - pBt->pTmpSpace += 4; - } + memset(pBt->pTmpSpace, 0, 8); + pBt->pTmpSpace += 4; return SQLITE_OK; } diff --git a/src/whereexpr.c b/src/whereexpr.c index 542114e91d..852c56f385 100644 --- a/src/whereexpr.c +++ b/src/whereexpr.c @@ -1090,7 +1090,7 @@ static void exprAnalyze( prereqAll = prereqLeft | pTerm->prereqRight; }else{ pTerm->prereqRight = sqlite3WhereExprUsage(pMaskSet, pExpr->pRight); - if( pExpr->pLeft==0 || ExprUseXSelect(pExpr) || pExpr->x.pList!=0 ){ + if( pExpr->pLeft==0 || NEVER(ExprUseXSelect(pExpr)) || pExpr->x.pList!=0 ){ prereqAll = sqlite3WhereExprUsageNN(pMaskSet, pExpr); }else{ prereqAll = prereqLeft | pTerm->prereqRight; -- 2.47.2