From 8b074eaf661f64ea43421012298355257b341f53 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 22 Jul 2006 13:56:32 +0000 Subject: [PATCH] Merge from GNU gettext. --- lib/ChangeLog | 9 +++++++++ lib/allocsa.h | 17 ++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/lib/ChangeLog b/lib/ChangeLog index ad966779eb..84e5b417b9 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,12 @@ +2005-02-12 Bruno Haible + + * allocsa.h: Add extern "C" for C++. + +2005-02-10 Bruno Haible + + * allocsa.h (sa_alignof): Define differently with AIX xlc, to avoid + a bug of this compiler on AIX 3.2.5 dealing with enums. + 2006-07-22 Bruno Haible * gettext.h: Update to GNU gettext-0.15. diff --git a/lib/allocsa.h b/lib/allocsa.h index cb6893ad14..36379aad5a 100644 --- a/lib/allocsa.h +++ b/lib/allocsa.h @@ -1,5 +1,5 @@ /* Safe automatic memory allocation. - Copyright (C) 2003-2004 Free Software Foundation, Inc. + Copyright (C) 2003-2005 Free Software Foundation, Inc. Written by Bruno Haible , 2003. This program is free software; you can redistribute it and/or modify @@ -23,6 +23,12 @@ #include #include + +#ifdef __cplusplus +extern "C" { +#endif + + /* safe_alloca(N) is equivalent to alloca(N) when it is safe to call alloca(N); otherwise it returns NULL. It either returns N bytes of memory allocated on the stack, that lasts until the function returns, @@ -69,6 +75,11 @@ extern void freesa (void *p); If this would be useful in your application. please speak up. */ +#ifdef __cplusplus +} +#endif + + /* ------------------- Auxiliary, non-public definitions ------------------- */ /* Determine the alignment of a type at compile time. */ @@ -81,6 +92,10 @@ extern void freesa (void *p); /* 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) +#elif defined _AIX + /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof + values. */ +# define sa_alignof(type) 4 #else # define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) #endif -- 2.30.2