[libcxx-commits] [PATCH] D107239: [libcxx] Remove _LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Aug 10 08:12:14 PDT 2021


ldionne accepted this revision.
ldionne added a comment.
This revision is now accepted and ready to land.

LGTM.

The issue of `#error`ing out on compilers that are not supported is a tricky one, and I'd tackle it as a separate effort. I see the following options:

1. Error-out on any compiler that isn't officially supported, even if parts of the library may still work.
2. Error-out only on compilers that we know will fail in crazy ways in order to provide a "fail fast and obviously" kind of experience to users.

The problem with (1) is that it could be perceived as raising the bar for people who want to create a setup that "kinda works". I can easily imagine people saying "my setup works just fine even though you don't officially support it - why are you making my life harder?".

The problem with (2) is that it's a moving target, and it's not easy to define "is obviously broken on compiler version X". For example, GCC 5 *clearly* doesn't work, but what about GCC 10? It's not supported, but parts of the library do work. How broken should compiler support be in order to explicitly `#error` out in `__config`?

In both cases, it's not an easy solution. Let's tackle it separately.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D107239



More information about the libcxx-commits mailing list