[rtems-libbsd commit] linker_set.h: Add alignof implementation for when not C11 or C++11

Joel Sherrill joel at rtems.org
Wed Jul 21 22:00:26 UTC 2021


Module:    rtems-libbsd
Branch:    6-freebsd-12
Commit:    c5e81a2169dff197d8d750663b84b2237fd3362c
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=c5e81a2169dff197d8d750663b84b2237fd3362c

Author:    Joel Sherrill <joel at rtems.org>
Date:      Tue Jul 20 16:02:50 2021 -0500

linker_set.h: Add alignof implementation for when not C11 or C++11

The default implementation was completely broken. Use the GCC specific
__alignof__ if compiling for C99 or C++03. If not C++11, C11, or
GCC, then it is an error.

---

 freebsd/sys/sys/linker_set.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/freebsd/sys/sys/linker_set.h b/freebsd/sys/sys/linker_set.h
index baa5ae4..9af5307 100755
--- a/freebsd/sys/sys/linker_set.h
+++ b/freebsd/sys/sys/linker_set.h
@@ -73,8 +73,10 @@
   #define RTEMS_BSD_ALIGNOF( _type_name ) alignof( _type_name )
 #elif __STDC_VERSION__ >= 201112L
   #define RTEMS_BSD_ALIGNOF( _type_name ) _Alignof( _type_name )
+#elif defined(__GNUC__)
+  #define RTEMS_BSD_ALIGNOF( _type_name ) __alignof__( _type_name )
 #else
-  #define RTEMS_BSD_ALIGNOF( _type_name ) sizeof( _type_name )
+  #error "FIX ME! Implement RTEMS_BSD_ALIGNOF() for this environment"
 #endif
 
 #define RTEMS_BSD_SET_ALIGN( type )	\



More information about the vc mailing list