Upgrade allocsa module from GNU gettext.
authorBruno Haible <bruno@clisp.org>
Thu, 4 Nov 2004 13:32:03 +0000 (13:32 +0000)
committerBruno Haible <bruno@clisp.org>
Thu, 4 Nov 2004 13:32:03 +0000 (13:32 +0000)
lib/ChangeLog
lib/allocsa.h
lib/allocsa.valgrind [new file with mode: 0644]

index af9ebaa..213db3c 100644 (file)
@@ -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
index 9d33bdc..b5fdac5 100644 (file)
@@ -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 @@ extern void freesa (void *p);
 #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
diff --git a/lib/allocsa.valgrind b/lib/allocsa.valgrind
new file mode 100644 (file)
index 0000000..f4c77d6
--- /dev/null
@@ -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
+}