]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
A new approach to working around the GCC bug. gcc-bug-114659
authordrh <>
Fri, 5 Jun 2026 00:11:56 +0000 (00:11 +0000)
committerdrh <>
Fri, 5 Jun 2026 00:11:56 +0000 (00:11 +0000)
FossilOrigin-Name: 2f95186ea568b27d45bd19fca1e03b878afb0b1ea0938875897c7323bdeab8a2

manifest
manifest.tags
manifest.uuid
src/main.c
src/vdbemem.c

index 836a7ba8c74a12499858a52f8b204a51a209fbb5..698e29f725bdc673ef096b3717e8cd12edb692f2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Disable\sthe\svector-IN-SELECT\soptimization\sif\sthe\snumber\sof\scolumns\sis\sso\nlarge\sthat\sit\swould\scause\sthe\sWhereTerm.nChild\scolumn\sto\swrap.\n[bugs:/info/2026-06-04T10:00:49Z|Bug\s2026-06-04T10:00:49Z].
-D 2026-06-04T16:56:11.519
+C A\snew\sapproach\sto\sworking\saround\sthe\sGCC\sbug.
+D 2026-06-05T00:11:56.803
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -701,7 +701,7 @@ F src/insert.c 8dbc22f6ddcc5f0af3abf11daeb89b1978f00059cda15ebc61251fa7724fc7ee
 F src/json.c f058c449acb9fdb1d3d1bb9f7e97b225ba773f5b6fdcec4310d3f49980125ed4
 F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
 F src/loadext.c 78d5b06f18996ffa1203129b28fea043f63a87a4117539678f1d761c30b4ff65
-F src/main.c 6180079f53ccdd784df2eddc3751f49ea7153c5959bee792b19ad9f4bdbcf437
+F src/main.c efd782fadd65b8e67952f439d56d7605134582346573018a614a8e082e074bd7
 F src/malloc.c 422f7e0498e1c9ef967f06283b6f2c0b16db6b905d8e06f6dbc8baaa3e4e6c5a
 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
 F src/mem1.c 3bb59158c38e05f6270e761a9f435bf19827a264c13d1631c58b84bdc96d73b2
@@ -810,7 +810,7 @@ F src/vdbeInt.h c31ba4dc8d280c2b1dc89c6fcee68f2555e3813ab34279552c20b964c0e338b1
 F src/vdbeapi.c 6cdcbe5c7afa754c998e73d2d5d2805556268362914b952811bdfb9c78a37cf1
 F src/vdbeaux.c bd3aaf77593a5590f617ce173e8677a21eca18522eadc1c4bc81b53f6d1c7e19
 F src/vdbeblob.c b3f0640db9642fbdc88bd6ebcc83d6009514cafc98f062f675f2c8d505d82692
-F src/vdbemem.c efacb8f229422d2a4db0ed38e49b7f3897862a98d82b261aa3b43d7a2d98c6da
+F src/vdbemem.c 6e7ad67507c9a8e625b46256a9c003929331d6a27b99bbe139b8f0dab636e1f2
 F src/vdbesort.c b69220f4ea9ffea5fdef34d968c60305444eea909252a81933b54c296d9cca70
 F src/vdbetrace.c 49e689f751505839742f4a243a1a566e57d5c9eaf0d33bbaa26e2de3febf7b41
 F src/vdbevtab.c fc46b9cbd759dc013f0b3724549cc0d71379183c667df3a5988f7e2f1bd485f3
@@ -2208,8 +2208,11 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P b4b9dc632b06f932759bc2fceeb6fa1dd6e0de329106ae1d34be874ea1695859
-R 67f36e9dbaba8a59d341f8d5b8046ceb
+P bb49dfc948048779a30deff9a3d1bb39846f6f72c26a2bdcdd0e386251720fe6
+R 0ac2af746dae5eb62966236f3386e733
+T *branch * gcc-bug-114659
+T *sym-gcc-bug-114659 *
+T -sym-trunk *
 U drh
-Z 5b04f3e9d03d2969d7a4a1df2153634f
+Z 21e56e7ccfbb2f1402d86815bdb006fd
 # Remove this line to create a well-formed Fossil manifest.
index bec971799ff1b8ee641c166c7aeb22d12c785393..9f7cd2bba6c474665f0aca4bddd5470da4f12ad4 100644 (file)
@@ -1,2 +1,2 @@
-branch trunk
-tag trunk
+branch gcc-bug-114659
+tag gcc-bug-114659
index b896730f1ba2786bfe44db2681a0070026cf5d3e..ca979960f6d11fa1e77024132242b491ef509796 100644 (file)
@@ -1 +1 @@
-bb49dfc948048779a30deff9a3d1bb39846f6f72c26a2bdcdd0e386251720fe6
+2f95186ea568b27d45bd19fca1e03b878afb0b1ea0938875897c7323bdeab8a2
index 6b856df84b98cdff5d5e25705c26e7e1b64e1680..310be10459df770d5cc2958d369dc083e9bed8ae 100644 (file)
@@ -518,7 +518,7 @@ int sqlite3_config(int op, ...){
       break;
     }
     case SQLITE_CONFIG_SMALL_MALLOC: {
-      sqlite3GlobalConfig.bSmallMalloc = va_arg(ap, int);
+      sqlite3GlobalConfig.bSmallMalloc = va_arg(ap, int)!=0;
       break;
     }
     case SQLITE_CONFIG_PAGECACHE: {
index 77aedbe9fc47f6931c864377814d0e27e4fd5d96..cf88cf4698a8bd6bdd60f6c37f8d73f0306f75b8 100644 (file)
@@ -114,8 +114,8 @@ static void vdbeMemRenderNum(int sz, char *zBuf, Mem *p){
     ** https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114659
     ** The problem appears to be fixed in GCC 15 */
     i64 x;
-    assert( (MEM_Str&~p->flags)*4==sizeof(x) );
-    memcpy(&x, (char*)&p->u, (MEM_Str&~p->flags)*4);
+    assert( (sqlite3Config.bSmallMalloc!=0xee)*8==sizeof(x) );
+    memcpy(&x, (char*)&p->u.i, (sqlite3Config.bSmallMalloc!=0xee)*8);
     p->n = sqlite3Int64ToText(x, zBuf);
 #else
     p->n = sqlite3Int64ToText(p->u.i, zBuf);