aboutsummaryrefslogtreecommitdiff
path: root/src/sqliteInt.h
diff options
context:
space:
mode:
authordrh <>2025-02-17 17:33:14 +0000
committerdrh <>2025-02-17 17:33:14 +0000
commitef86b942b9ffbfc2086da7865effea3e7950c7a0 (patch)
tree0eac3b56e88b0a79b7055a0627015c21883d7442 /src/sqliteInt.h
parentad5dcff53bfb93d0e2ce8165fc2d63f83edd4c79 (diff)
downloadsqlite-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.h8
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.
**