[all-commits] [llvm/llvm-project] 000ec5: [Clang] Adjust triviality computation in QualType:...

Roy Jacobson via All-commits all-commits at lists.llvm.org
Wed Feb 22 13:27:25 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 000ec50ef511243ec46c249c06d7a82cedf6d538
      https://github.com/llvm/llvm-project/commit/000ec50ef511243ec46c249c06d7a82cedf6d538
  Author: Roy Jacobson <roi.jacobson1 at gmail.com>
  Date:   2023-02-22 (Wed, 22 Feb 2023)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/Type.cpp
    M clang/test/SemaCXX/constrained-special-member-functions.cpp

  Log Message:
  -----------
  [Clang] Adjust triviality computation in QualType::isTrivialType to C++20 cases.

Up to C++20, hasDefaultConstructor and !hasNonTrivialDefaultConstructor together implied
hasTrivialDefaultConstructor. In C++20, a constructor might be ineligible and can set
hasDefaultConstructor without setting hasNonTrivialDefaultConstructor.

Fix this by querying hasTrivialDefaultConstructor instead of hasDefaultConstructor.

I'd like to backport this to Clang 16.
I only change isTrivialType and in a way that should only affect code that uses
constrained constructors, so I think this is relatively safe to backport.

Fixes https://github.com/llvm/llvm-project/issues/60697

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D143891




More information about the All-commits mailing list