From 408e170e3ae81f73fb65686c5834693d89a96594 Mon Sep 17 00:00:00 2001 From: Bruno Haible <bruno@clisp.org> Date: Tue, 1 Nov 2011 12:43:23 +0100 Subject: [PATCH] alignof: Avoid collision with stdalign module. * lib/alignof.h (alignof): Remove macro. * NEWS: Mention the change. Reported by Paul Eggert. --- ChangeLog | 7 +++++++ NEWS | 3 +++ lib/alignof.h | 14 ++++++-------- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 097de6c87b..763f9beb8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2011-11-01 Bruno Haible <bruno@clisp.org> + + alignof: Avoid collision with stdalign module. + * lib/alignof.h (alignof): Remove macro. + * NEWS: Mention the change. + Reported by Paul Eggert. + 2011-11-01 Bruno Haible <bruno@clisp.org> New module 'fchownat', split off from module 'openat'. diff --git a/NEWS b/NEWS index 6dee4ae13e..477c61cf90 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,9 @@ User visible incompatible changes Date Modules Changes +2011-11-01 alignof This module no longer provides the alignof() macro. + Use either alignof_slot() or alignof_type() instead. + 2011-11-01 openat This module no longer provides the fchownat() function. If you need this function, you now need to request the 'fchownat' module. diff --git a/lib/alignof.h b/lib/alignof.h index 9b8e00dbcd..bff3930923 100644 --- a/lib/alignof.h +++ b/lib/alignof.h @@ -20,8 +20,11 @@ #include <stddef.h> -/* Determine the alignment of a structure slot (field) of a given type, +/* alignof_slot (TYPE) + Determine the alignment of a structure slot (field) of a given type, at compile time. Note that the result depends on the ABI. + This is the same as alignof (TYPE) and _Alignof (TYPE), defined in + <stdalign.h> if __alignof_is_defined is 1. Note: The result cannot be used as a value for an 'enum' constant, due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc. */ #if defined __cplusplus @@ -31,7 +34,8 @@ # define alignof_slot(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) #endif -/* Determine the good alignment of an object of the given type at compile time. +/* alignof_type (TYPE) + Determine the good alignment of an object of the given type at compile time. Note that this is not necessarily the same as alignof_slot(type). For example, with GNU C on x86 platforms: alignof_type(double) = 8, but - when -malign-double is not specified: alignof_slot(double) = 4, @@ -44,10 +48,4 @@ # define alignof_type alignof_slot #endif -/* alignof is an alias for alignof_slot semantics, since that's what most - callers need. - Note: The result cannot be used as a value for an 'enum' constant, - due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc. */ -#define alignof alignof_slot - #endif /* _ALIGNOF_H */ -- 2.39.5