[PATCH] D143891: [Clang] Adjust triviality computation in QualType::isTrivialType to C++20 cases.

Hubert Tong via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 15 07:52:45 PST 2023


hubert.reinterpretcast added a comment.

In D143891#4122660 <https://reviews.llvm.org/D143891#4122660>, @aaron.ballman wrote:

> This is an ABI breaking change, isn't it? (The type trait now returns something different than it did before, which could change instantiations or object layout.)

In my opinion, this is an argument for not fixing in a fix release of a specific version of Clang--not an argument for additional option control in new versions.
Instantiations change all the time from changes to constant expression evaluation, overload resolution, partial ordering rules for templates, etc.
As for object layout, I believe the language and the ABI rules for triviality diverged quite some time ago.

I know that the evaluation for this specific case was that we don't need to apply ABI versioning control for this because it only affects code using Concepts, but I think we will eventually need to (re)discover when ABI versioning control is the appropriate tool.

I propose an action item: Someone needed to review past application of the ABI versioning options to see if we can extract and document workable criteria (perhaps in https://clang.llvm.org/docs/InternalsManual.html).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D143891



More information about the cfe-commits mailing list