[libcxx-commits] [PATCH] D109459: [libc++][ABI BREAK] Remove the C++03 emulation for std::nullptr_t

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Oct 5 11:52:49 PDT 2021


ldionne added a subscriber: dexonsmith.
ldionne added a comment.

@dexonsmith has had useful views on ABI changes in the past, I'm curious to have his opinion on this change, since I'm still ambivalent.

TL;DR: Today, `std::nullptr_t` is a different type in C++03 and C++11, which means that the ABI breaks between C++03 and C++11. This patch breaks the ABI in C++03 mode once, right now, to reconcile the C++03 and C++11 ABIs and remove some convolution from libc++. My hunch is that this will not affect too many people and hence it's reasonable. Remember that `nullptr` is a C++11 construct, so it would have to be someone compiling their code in C++03 mode *and* using our `nullptr` extension, *and* leaking `nullptr_t` in their ABI. Do you have an opinion?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D109459



More information about the libcxx-commits mailing list