[PATCH] linker_set.h: Add alignof implementation for when not C11 or C++11
Joel Sherrill
joel at rtems.org
Tue Jul 20 21:04:34 UTC 2021
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 ) \
--
1.8.3.1
More information about the devel
mailing list