rsmith added a comment.

libc++ intentionally provides all the C++11 library functionality that it can, 
even when used from C++03 mode. So on the face of it, providing this name in 
C++03 mode seems appropriate.

However... the implementation currently used by libc++ **doesn't work** in that 
mode: the various compilers' `<stddef.h>`s will not provide `::max_align_t` 
when included in C++03 mode. So either this fails to build (on NetBSD, which 
provides its own <stddef.h>, which I think is the issue that Joerg is 
reporting), or -- worse -- it silently uses the wrong definition for 
`max_align_t` by falling through to the `long double` fallback (which is what 
happens everywhere other than NetBSD). So I think we should do //something// 
here; the current approach is broken in (at least) C++03 mode.

But I think this is not the right fix. We should remove the `long double` 
fallback instead. We have no reason to think that this is correct in the cases 
where it's reachable (if any exist), and libc++ shouldn't be making arbitrary 
guesses about ABI decisions like this. Either we have the right `::max_align_t` 
from `<stddef.h>` or we just can't provide one. And we should fix the 
`defined(__NetBSD__)` check to properly check for whatever conditions NetBSD 
defines `max_align_t` (maybe there's nothing better than `(defined(__NetBSD__) 
&& __cplusplus >= 201103L)`, but someone could look at their `<stddef.h>` to 
find out).


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73245/new/

https://reviews.llvm.org/D73245



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D73245: D... Joerg Sonnenberger via Phabricator via cfe-commits
    • [PATCH] D732... Eric Fiselier via Phabricator via cfe-commits
    • [PATCH] D732... Joerg Sonnenberger via Phabricator via cfe-commits
    • [PATCH] D732... Joerg Sonnenberger via Phabricator via cfe-commits
    • [PATCH] D732... Richard Smith - zygoloid via Phabricator via cfe-commits
    • [PATCH] D732... Joerg Sonnenberger via Phabricator via cfe-commits
    • [PATCH] D732... Joerg Sonnenberger via Phabricator via cfe-commits

Reply via email to