changeset 5393:12b5efa248fc

Upgrade allocsa module from GNU gettext.
author Bruno Haible <bruno@clisp.org>
date Thu, 04 Nov 2004 13:32:03 +0000
parents 94f8f80ce42c
children 0676d18c8e64
files lib/ChangeLog lib/allocsa.h lib/allocsa.valgrind
diffstat 3 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,12 @@
+2004-11-04  Bruno Haible  <bruno@clisp.org>
+
+	2004-09-11  Bruno Haible  <bruno@clisp.org>
+		* allocsa.valgrind: New file.
+	2004-02-06  Bruno Haible  <bruno@clisp.org>
+		* allocsa.h (sa_alignof): Define differently with HP-UX cc, to
+		avoid a bug of this cc on HP-UX 10.20 dealing with enums.
+		Reported by Christopher Seip <chris.seip@hp.com>.
+
 2004-11-03  Paul Eggert  <eggert@cs.ucla.edu>
 
 	* xreadlink.c (xreadlink): AIX and HP-UX readlink return -1
--- a/lib/allocsa.h
+++ b/lib/allocsa.h
@@ -1,5 +1,5 @@
 /* Safe automatic memory allocation.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003-2004 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This program is free software; you can redistribute it and/or modify
@@ -77,6 +77,10 @@
 #elif defined __cplusplus
   template <class type> struct sa_alignof_helper { char __slot1; type __slot2; };
 # define sa_alignof(type) offsetof (sa_alignof_helper<type>, __slot2)
+#elif defined __hpux
+  /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof
+     values.  */
+# define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8)
 #else
 # define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2)
 #endif
new file mode 100644
--- /dev/null
+++ b/lib/allocsa.valgrind
@@ -0,0 +1,7 @@
+# Suppress a valgrind message about use of uninitialized memory in freesa().
+# This use is OK because it provides only a speedup.
+{
+    freesa
+    Memcheck:Cond
+    fun:freesa
+}