/* Safe automatic memory allocation.
- Copyright (C) 2003-2005 Free Software Foundation, Inc.
+ Copyright (C) 2003-2007 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003.
This program is free software; you can redistribute it and/or modify
#elif defined _AIX
/* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof
values. */
-# define sa_alignof(type) 4
+# define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8)
#else
# define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2)
#endif
among all elementary types. */
sa_alignment_long = sa_alignof (long),
sa_alignment_double = sa_alignof (double),
-#ifdef HAVE_LONG_LONG
+#if HAVE_LONG_LONG_INT
sa_alignment_longlong = sa_alignof (long long),
#endif
-#ifdef HAVE_LONG_DOUBLE
+#if HAVE_LONG_DOUBLE
sa_alignment_longdouble = sa_alignof (long double),
#endif
sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1)
-#ifdef HAVE_LONG_LONG
+#if HAVE_LONG_LONG_INT
| (sa_alignment_longlong - 1)
#endif
-#ifdef HAVE_LONG_DOUBLE
+#if HAVE_LONG_DOUBLE
| (sa_alignment_longdouble - 1)
#endif
) + 1,