diff options
author | drh <> | 2025-02-17 17:33:14 +0000 |
---|---|---|
committer | drh <> | 2025-02-17 17:33:14 +0000 |
commit | ef86b942b9ffbfc2086da7865effea3e7950c7a0 (patch) | |
tree | 0eac3b56e88b0a79b7055a0627015c21883d7442 /src/sqliteInt.h | |
parent | ad5dcff53bfb93d0e2ce8165fc2d63f83edd4c79 (diff) | |
download | sqlite-ef86b942b9ffbfc2086da7865effea3e7950c7a0.tar.gz sqlite-ef86b942b9ffbfc2086da7865effea3e7950c7a0.zip |
Code changes that make it easier to prove that no 32-bit integer overflows
happen during memory allocation. No problems fixed; this change is just
to make future maintenance easier.
FossilOrigin-Name: 215650a5a1d55bdbca9c92524804a1a54456a17f42a17e53747b21a6507506f5
Diffstat (limited to 'src/sqliteInt.h')
-rw-r--r-- | src/sqliteInt.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/sqliteInt.h b/src/sqliteInt.h index c8ecaf857..6ebd8eb4f 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -1017,6 +1017,14 @@ typedef INT16_TYPE LogEst; #define SMALLEST_INT64 (((i64)-1) - LARGEST_INT64) /* +** Macro SMXV(n) return the maximum value that can be held in variable n, +** assuming n is a signed integer type. UMXV(n) is similar for unsigned +** integer types. +*/ +#define SMXV(n) ((((i64)1)<<(sizeof(n)-1))-1) +#define UMXV(n) ((((i64)1)<<(sizeof(n)))-1) + +/* ** Round up a number to the next larger multiple of 8. This is used ** to force 8-byte alignment on 64-bit architectures. ** |