The GCC bug is fixed in GCC-15.

FossilOrigin-Name: 21f9abe6c9d1e2ce99ed75c2984103dcd2356b5d53bca3f3732176bb856bf3f7
This commit is contained in:
drh
2026-02-25 21:19:20 +00:00
parent f45c695471
commit 1a152ea92a
3 changed files with 12 additions and 11 deletions
+6 -6
View File
@@ -1,5 +1,5 @@
C Reinstant\sthe\swork-around\sfor\s[https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96270|GCC\scompiler\sbug\s96270]\nwhich\sis\sapparently\sstill\san\sissue\sas\sof\sgcc\s13.3.0\swith\s-m32\son\sMint\sLinux.\nThe\stest\scase\sin\sthe\sbug\sreport\sis\sfixed,\sbut\sthe\svdbeMemRenderNum()\sroutine\nin\sSQLite\sstill\sshows\sthe\sproblem.
D 2026-02-25T12:44:19.970
C The\sGCC\sbug\sis\sfixed\sin\sGCC-15.
D 2026-02-25T21:19:20.849
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -811,7 +811,7 @@ F src/vdbeInt.h 42488247a80cd9d300627833c6c85ace067ae5011a99e7614e2358130d62feea
F src/vdbeapi.c 6cdcbe5c7afa754c998e73d2d5d2805556268362914b952811bdfb9c78a37cf1
F src/vdbeaux.c 396d38a62a357b807eabae0cae441fc89d2767a57ab08026b7072bf7aa2dd00c
F src/vdbeblob.c b3f0640db9642fbdc88bd6ebcc83d6009514cafc98f062f675f2c8d505d82692
F src/vdbemem.c 401a320db404ce7e51f94a69cca30b2737d74d3b8e9ab272287cbfccdc9ffd10
F src/vdbemem.c 317ec5e870ddb16951b606c9fe8be22baef22ecbe46f58fdefc259662238afb7
F src/vdbesort.c b69220f4ea9ffea5fdef34d968c60305444eea909252a81933b54c296d9cca70
F src/vdbetrace.c 49e689f751505839742f4a243a1a566e57d5c9eaf0d33bbaa26e2de3febf7b41
F src/vdbevtab.c fc46b9cbd759dc013f0b3724549cc0d71379183c667df3a5988f7e2f1bd485f3
@@ -2195,8 +2195,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
P 75a35cd8f97f8a6cd2311c829685bd3b1cfb394de15174aef347f15cfb1913a1
R a056b439b6d5d9d4c93ec16898c6d538
P 7fae321095ebec775de1b39b974fb1f295d5efbd5723e9cb29a981c97a4262c8
R 2bce2d64dedeeeba07cce6ad1de3a76b
U drh
Z e627ce35647ad04f6d121e351748c96b
Z 54d73eb42d56bcceef1669c00ba9a6e1
# Remove this line to create a well-formed Fossil manifest.
+1 -1
View File
@@ -1 +1 @@
7fae321095ebec775de1b39b974fb1f295d5efbd5723e9cb29a981c97a4262c8
21f9abe6c9d1e2ce99ed75c2984103dcd2356b5d53bca3f3732176bb856bf3f7
+5 -4
View File
@@ -107,11 +107,12 @@ static void vdbeMemRenderNum(int sz, char *zBuf, Mem *p){
StrAccum acc;
assert( p->flags & (MEM_Int|MEM_Real|MEM_IntReal) );
assert( sz>22 );
if( p->flags & (MEM_Int|MEM_IntReal) ){
#if GCC_VERSION>=7000000 && defined(__i386__)
/* Work-around for GCC bug
if( p->flags & (MEM_Int|MEM_IntReal) ){
#if GCC_VERSION>=7000000 && GCC_VERSION<15000000 && defined(__i386__)
/* Work-around for GCC bug or bugs:
** https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96270
** This is still an issue as of 2026-02-25, GCC 13.3.0 with -m32 */
** 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);