changeset 39238:e5bf6ab0bb97

malloca: Add a compile-time verification. * lib/malloca.c (small_t): Verify that it is wide enough. * modules/malloca (Depends-on): Add verify.
author Paul Eggert <eggert@cs.ucla.edu>
date Sat, 03 Feb 2018 00:47:15 +0100
parents a675c796ba51
children 31d885413cfb
files ChangeLog lib/malloca.c modules/malloca
diffstat 3 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat Feb 03 00:32:41 2018 +0100
+++ b/ChangeLog	Sat Feb 03 00:47:15 2018 +0100
@@ -1,3 +1,9 @@
+2018-02-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+	malloca: Add a compile-time verification.
+	* lib/malloca.c (small_t): Verify that it is wide enough.
+	* modules/malloca (Depends-on): Add verify.
+
 2018-02-02  Bruno Haible  <bruno@clisp.org>
 
 	malloca: Add an argument check.
--- a/lib/malloca.c	Sat Feb 03 00:32:41 2018 +0100
+++ b/lib/malloca.c	Sat Feb 03 00:47:15 2018 +0100
@@ -21,6 +21,8 @@
 /* Specification.  */
 #include "malloca.h"
 
+#include "verify.h"
+
 /* The speed critical point in this file is freea() applied to an alloca()
    result: it must be fast, to match the speed of alloca().  The speed of
    mmalloca() and freea() in the other case are not critical, because they
@@ -34,6 +36,8 @@
 
 /* Type for holding very small pointer differences.  */
 typedef unsigned char small_t;
+/* Verify that it is wide enough.  */
+verify (2 * sa_alignment_max - 1 <= (small_t) -1);
 
 void *
 mmalloca (size_t n)
--- a/modules/malloca	Sat Feb 03 00:32:41 2018 +0100
+++ b/modules/malloca	Sat Feb 03 00:47:15 2018 +0100
@@ -11,6 +11,7 @@
 Depends-on:
 alloca-opt
 stdint
+verify
 xalloc-oversized
 
 configure.ac: