Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Sep 2014 03:11:32 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-standards@FreeBSD.org
Subject:   [Bug 193594] New: stddef.h should define max_align_t
Message-ID:  <bug-193594-15@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
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@FreeBSD.org
          Reporter: lichray@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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-193594-15>