mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Work around compilers that do not understand flexible arrays, in the
recovery extension and in the fuzzcheck test module. FossilOrigin-Name: f101c46cf83e532fd33034abccba496bf395ef10c161af003211614d6581d5eb
This commit is contained in:
@ -33,6 +33,16 @@ typedef unsigned int u32;
|
|||||||
typedef unsigned char u8;
|
typedef unsigned char u8;
|
||||||
typedef sqlite3_int64 i64;
|
typedef sqlite3_int64 i64;
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Work around C99 "flex-array" syntax for pre-C99 compilers, so as
|
||||||
|
** to avoid complaints from -fsanitize=strict-bounds.
|
||||||
|
*/
|
||||||
|
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
|
||||||
|
# define FLEXARRAY
|
||||||
|
#else
|
||||||
|
# define FLEXARRAY 1
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct RecoverTable RecoverTable;
|
typedef struct RecoverTable RecoverTable;
|
||||||
typedef struct RecoverColumn RecoverColumn;
|
typedef struct RecoverColumn RecoverColumn;
|
||||||
|
|
||||||
@ -140,7 +150,7 @@ struct RecoverColumn {
|
|||||||
typedef struct RecoverBitmap RecoverBitmap;
|
typedef struct RecoverBitmap RecoverBitmap;
|
||||||
struct RecoverBitmap {
|
struct RecoverBitmap {
|
||||||
i64 nPg; /* Size of bitmap */
|
i64 nPg; /* Size of bitmap */
|
||||||
u32 aElem[]; /* Array of 32-bit bitmasks */
|
u32 aElem[FLEXARRAY]; /* Array of 32-bit bitmasks */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Size in bytes of a RecoverBitmap object sufficient to cover 32 pages */
|
/* Size in bytes of a RecoverBitmap object sufficient to cover 32 pages */
|
||||||
|
14
manifest
14
manifest
@ -1,5 +1,5 @@
|
|||||||
C Fix\salignment\sproblems\son\sLinux\swith\s-m32\sand\son\sMac\sPPC.
|
C Work\saround\scompilers\sthat\sdo\snot\sunderstand\sflexible\sarrays,\sin\sthe\nrecovery\sextension\sand\sin\sthe\sfuzzcheck\stest\smodule.
|
||||||
D 2025-03-15T18:26:27.012
|
D 2025-03-15T19:00:46.484
|
||||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||||
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
|
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
|
||||||
@ -523,7 +523,7 @@ F ext/recover/recoverpgsz.test 88766fcb810e52ee05335c456d4e5fb06d02b73d3ccb48c52
|
|||||||
F ext/recover/recoverrowid.test f948bf4024a5f41b0e21b8af80c60564c5b5d78c05a8d64fc00787715ff9f45f
|
F ext/recover/recoverrowid.test f948bf4024a5f41b0e21b8af80c60564c5b5d78c05a8d64fc00787715ff9f45f
|
||||||
F ext/recover/recoverslowidx.test c90d59c46bb8924a973ac6fbc38f3163cee38cc240256addcab1cf1a322c37dc
|
F ext/recover/recoverslowidx.test c90d59c46bb8924a973ac6fbc38f3163cee38cc240256addcab1cf1a322c37dc
|
||||||
F ext/recover/recoversql.test e66d01f95302a223bcd3fd42b5ee58dc2b53d70afa90b0d00e41e4b8eab20486
|
F ext/recover/recoversql.test e66d01f95302a223bcd3fd42b5ee58dc2b53d70afa90b0d00e41e4b8eab20486
|
||||||
F ext/recover/sqlite3recover.c 098b622d34499625a3c87bc31abc237f8e9b992fa93ac5071f280bb0d90e7fd8
|
F ext/recover/sqlite3recover.c 56c216332ea91233d6d820d429f3384adbec9ecedda67aa98186b691d427cc57
|
||||||
F ext/recover/sqlite3recover.h 011c799f02deb70ab685916f6f538e6bb32c4e0025e79bfd0e24ff9c74820959
|
F ext/recover/sqlite3recover.h 011c799f02deb70ab685916f6f538e6bb32c4e0025e79bfd0e24ff9c74820959
|
||||||
F ext/recover/test_recover.c 072260d7452a3b81aba995b2b3269e7ec2aa7f06725544ba4c25b1b0a1dbc61a
|
F ext/recover/test_recover.c 072260d7452a3b81aba995b2b3269e7ec2aa7f06725544ba4c25b1b0a1dbc61a
|
||||||
F ext/repair/README.md 92f5e8aae749a4dae14f02eea8e1bb42d4db2b6ce5e83dbcdd6b1446997e0c15
|
F ext/repair/README.md 92f5e8aae749a4dae14f02eea8e1bb42d4db2b6ce5e83dbcdd6b1446997e0c15
|
||||||
@ -1278,7 +1278,7 @@ F test/fuzz3.test 70ba57260364b83e964707b9d4b5625284239768ab907dd387c740c0370ce3
|
|||||||
F test/fuzz4.test c229bcdb45518a89e1d208a21343e061503460ac69fae1539320a89f572eb634
|
F test/fuzz4.test c229bcdb45518a89e1d208a21343e061503460ac69fae1539320a89f572eb634
|
||||||
F test/fuzz_common.tcl b7197de6ed1ee8250a4f82d67876f4561b42ee8cbbfc6160dcb66331bad3f830
|
F test/fuzz_common.tcl b7197de6ed1ee8250a4f82d67876f4561b42ee8cbbfc6160dcb66331bad3f830
|
||||||
F test/fuzz_malloc.test f348276e732e814802e39f042b1f6da6362a610af73a528d8f76898fde6b22f2
|
F test/fuzz_malloc.test f348276e732e814802e39f042b1f6da6362a610af73a528d8f76898fde6b22f2
|
||||||
F test/fuzzcheck.c 128789e46d14f2a3ab452fb341165897ff471c4bbef09f8e113c80839acf8941
|
F test/fuzzcheck.c e94511f5f5b8c134c83535b4799004b85ead69ed8375d74e9af90e41549a82ad
|
||||||
F test/fuzzdata1.db 3e86d9cf5aea68ddb8e27c02d7dfdaa226347426c7eb814918e4d95475bf8517
|
F test/fuzzdata1.db 3e86d9cf5aea68ddb8e27c02d7dfdaa226347426c7eb814918e4d95475bf8517
|
||||||
F test/fuzzdata2.db 128b3feeb78918d075c9b14b48610145a0dd4c8d6f1ca7c2870c7e425f5bf31f
|
F test/fuzzdata2.db 128b3feeb78918d075c9b14b48610145a0dd4c8d6f1ca7c2870c7e425f5bf31f
|
||||||
F test/fuzzdata3.db c6586d3e3cef0fbc18108f9bb649aa77bfc38aba
|
F test/fuzzdata3.db c6586d3e3cef0fbc18108f9bb649aa77bfc38aba
|
||||||
@ -2213,8 +2213,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
|
|||||||
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
|
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
|
||||||
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
|
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
|
||||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||||
P 44f2c64ec16f4720dc538be30410863c4138ea4ce41c94521bd7980535261735
|
P 8a91aeca60548d5cd19add128cf65b9c3815c9103b1ef8ff6bc02711b6d709de
|
||||||
R 0aa0704287ff919c67b51206bc5ac75c
|
R 1db0ab70ab59a8097f7bb0d50c768431
|
||||||
U drh
|
U drh
|
||||||
Z 83d96f08f2610b8988f70e4446915dd1
|
Z 9641d2a6129bd2783700fa8c8a1376d8
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
@ -1 +1 @@
|
|||||||
8a91aeca60548d5cd19add128cf65b9c3815c9103b1ef8ff6bc02711b6d709de
|
f101c46cf83e532fd33034abccba496bf395ef10c161af003211614d6581d5eb
|
||||||
|
@ -88,6 +88,11 @@
|
|||||||
#include "sqlite3recover.h"
|
#include "sqlite3recover.h"
|
||||||
#define ISSPACE(X) isspace((unsigned char)(X))
|
#define ISSPACE(X) isspace((unsigned char)(X))
|
||||||
#define ISDIGIT(X) isdigit((unsigned char)(X))
|
#define ISDIGIT(X) isdigit((unsigned char)(X))
|
||||||
|
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
|
||||||
|
# define FLEXARRAY
|
||||||
|
#else
|
||||||
|
# define FLEXARRAY 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef __unix__
|
#ifdef __unix__
|
||||||
@ -129,7 +134,7 @@ struct Blob {
|
|||||||
int id; /* Id of this Blob */
|
int id; /* Id of this Blob */
|
||||||
int seq; /* Sequence number */
|
int seq; /* Sequence number */
|
||||||
int sz; /* Size of this Blob in bytes */
|
int sz; /* Size of this Blob in bytes */
|
||||||
unsigned char a[]; /* Blob content. Extra space allocated as needed. */
|
unsigned char a[FLEXARRAY]; /* Blob content. Allocated as needed. */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Size in bytes of a Blob object sufficient to store N byte of content */
|
/* Size in bytes of a Blob object sufficient to store N byte of content */
|
||||||
|
Reference in New Issue
Block a user