[Bug 193594] New: stddef.h should define max_align_t
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sat Sep 13 03:11:32 UTC 2014
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=193594
Bug ID: 193594
Summary: stddef.h should define max_align_t
Product: Base System
Version: 11.0-CURRENT
Hardware: Any
OS: Any
Status: Needs Triage
Severity: Affects Some People
Priority: ---
Component: standards
Assignee: freebsd-standards at FreeBSD.org
Reporter: lichray at gmail.com
C11 max_align_t does not work with both base system clang and ports clang
(clang has those defined under lib/Headers but we don't install them, while we
do install GCC's fixed headers for GCC in ports, e.g.
/usr/local/lib/gcc49/gcc/x86_64-portbld-freebsd8.4/4.9.2/include/stddef.h).
FreeBSD already defines C11 additions in /usr/include/stdlib.h, and we should
do the same for max_align_t.
I copy-pasted clang's implementation to /usr/include/stddef.h and everything
works fine:
#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
typedef struct {
long long __clang_max_align_nonce1
__attribute__((__aligned__(__alignof__(long long))));
long double __clang_max_align_nonce2
__attribute__((__aligned__(__alignof__(long double))));
} max_align_t;
#endif
GCC's implementation queries for defined(__STDC_VERSION__) and
defined(__cplusplus); the struct is the same.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-standards
mailing list