aaron.ballman added inline comments.

================
Comment at: clang/lib/Headers/__stddef_null.h:18-21
+// Don't add any whitespaces in ((void*)0) below!
+// musl (https://www.musl-libc.org/) redefines `NULL` as such and redefinition
+// with a different expression, even in terms of a single whitespace, causes a
+// warning.
----------------
My concern with this comment is that it implies we can never change our 
definition of `NULL` -- as the implementation, this is ours to define and if 
other C standard libraries (also part of the implementation!) are redefining 
the macro, IMO, they need to solve this themselves with either `#ifdef` or 
`#undef` as needed instead of expecting the definitions to stay in lock-step 
including whitespace. I don't expect us to change the definition of `NULL` any 
time soon, but this feels like a bad precedent to set. I'm not opposed (this is 
solving a real problem), but I'm wondering if musl would consider guarding 
their macro definitions so we don't have this fragility forever? We need to 
keep it for now so existing musl uses don't have this problem, but I don't 
really want to make the guarantees this comment is claiming.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D159312

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

Reply via email to