aaron.ballman added inline comments.

================
Comment at: clang/lib/Headers/stddef.h:118-122
+#ifdef __cplusplus
+namespace std {
+typedef decltype(nullptr) nullptr_t;
+}
+using ::std::nullptr_t;
----------------
iana wrote:
> ldionne wrote:
> > iana wrote:
> > > aaron.ballman wrote:
> > > > Related:
> > > > 
> > > > https://github.com/llvm/llvm-project/issues/37564
> > > > https://cplusplus.github.io/LWG/issue3484
> > > > 
> > > > CC @ldionne
> > > I don't _think_ this change actually changes the way nullptr_t gets 
> > > defined in C++, does it?
> > I think we absolutely don't want to touch `std::nullptr_t` from this 
> > header. It's libc++'s responsibility to define that, and in fact we define 
> > it in `std::__1`, so this is even an ABI break (or I guess it would be a 
> > compiler error, not sure).
> I'm really not touching it though. All I did is move it from `__need_NULL` to 
> `__need_nullptr_t`.
> 
> The old behavior is that `std::nullptr_t` would only be touched if (no 
> `__need_` macros were set or if `__need_NULL` was set), and (_MSC_EXTENSIONS 
> and _NATIVE_NULLPTR_SUPPORTED are defined).
> 
> The new behavior is that `std::nullptr_t` will only be touched if ((no 
> `__need_` macros are set) and (_MSC_EXTENSIONS and _NATIVE_NULLPTR_SUPPORTED 
> are defined)) or (the new `__need_nullptr_t` macro is set)
> 
> So the only change is that C++ code that previously set `__need_NULL` will no 
> longer get `std::nullptr_t`. @efriedma felt like that was a fine change.
Does libc++ provide the symbols for a freestanding compilation?

I was pointing out those links specifically because the C++ standard currently 
says that stddef.h (the C standard library header) needs to provide a 
definition of `std::nullptr_t`, but that LWG thinks that's perhaps not the 
right way to do that and may be removing that requirement.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D157757

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to