<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi All,<div><br></div><div>I know we're late in the release process, but I've discovered a regression I believe is serious enough to hold the release [1]. </div><div><br></div><div>The regression is in usages of `__builtin_constant_p` applied to a dereferenced pointer in a constant expression. In certain cases Clang now rejects this as a non-constant expression [2].</div><div></div><div></div><div><br></div><div>This regression will have a larger impact than it initially appears. </div><div><br></div><div>libstdc++ 7.1 and newer use `__builtin_constant_p` to implement C++17 `std::char_traits` [4]. This means that any usage of `std::string_view` in a constant expression has the possibility to break. `__builtin_constant_p` may be rare, but `std::string_view` is not.</div><div><br></div><div>This regression was first found because it breaks `absl::StrFormat` [4]. This bug will break Abseil's LTS w/ libstdc++. Abseil cannot fully work around this bug.<br></div><div><br></div><div>I would implore us to fix this bug in the upcoming 8 release.</div><div><br></div><div>/Eric</div><div><br></div><div>[1] <a href="https://reviews.llvm.org/D59038">https://reviews.llvm.org/D59038</a></div><div>[2] <a href="https://godbolt.org/z/VOCCJF">https://godbolt.org/z/VOCCJF</a><br></div><div>[3] <a href="https://github.com/abseil/abseil-cpp/issues/271">https://github.com/abseil/abseil-cpp/issues/271</a><br></div><div>[4] <a href="https://github.com/gcc-mirror/gcc/blob/gcc-8_1_0-release/libstdc++-v3/include/bits/char_traits.h#L229">https://github.com/gcc-mirror/gcc/blob/gcc-8_1_0-release/libstdc++-v3/include/bits/char_traits.h#L229</a></div></div></div></div></div></div>