Ping for this patch series.

Since trivial relocation has been removed I suppose patch 7/7 is no
longer required.

On Sun, Oct 26, 2025 at 01:01:10PM +1100, Nathaniel Shead wrote:
> This patch series adds some more explanatory diagnostics for traits,
> and fixes some issues I found on the way.
> 
> The only remaining traits without explanatory diagnostics are either
> those where there's no useful explanation to give (e.g. is_const), or
> for traits where they are based around flags set during class creation
> and so there's no easy predicate to hook into to give diagnostics for
> (e.g. is_standard_layout).  I would like to explore a way to give better
> diagnostics for the latter kind as well but that's unlikely for GCC16.
> 
> All patches successfully bootstrapped and regtested on
> x86_64-pc-linux-gnu.
> 
> Nathaniel Shead (7):
>   c++: Check for error_mark_node in diagnose_trait_expr
>   c++: Adjust location of is_*_base_of diagnostics
>   c++: Fix diagnostics for __is_destructable
>   c++: Add detailed diagnostics for
>     __builtin_has_unique_object_representations
>   c++: Add detailed diagnostics for __is_layout_compatible
>   c++: Add detailed diagnostics for
>     __is_pointer_interconvertible_base_of
>   c++: Add detailed diagnostics for (and fix) relocation builtins
> 
>  gcc/cp/constraint.cc                          |  30 +-
>  gcc/cp/cp-tree.h                              |  14 +-
>  gcc/cp/method.cc                              |  32 +-
>  gcc/cp/semantics.cc                           |  83 ++-
>  gcc/cp/tree.cc                                | 565 +++++++++++++-----
>  gcc/cp/typeck.cc                              | 146 ++++-
>  .../cpp1z/has-unique-obj-representations5.C   |  45 ++
>  .../g++.dg/cpp26/trivially-relocatable12.C    |  54 ++
>  .../g++.dg/cpp26/trivially-relocatable13.C    | 106 ++++
>  .../g++.dg/cpp2a/is-layout-compatible4.C      |  86 +++
>  .../is-pointer-interconvertible-base-of2.C    |  29 +
>  gcc/testsuite/g++.dg/ext/is_destructible3.C   |   4 +
>  .../ext/is_virtual_base_of_diagnostic2.C      |   4 +-
>  13 files changed, 955 insertions(+), 243 deletions(-)
>  create mode 100644 
> gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations5.C
>  create mode 100644 gcc/testsuite/g++.dg/cpp26/trivially-relocatable12.C
>  create mode 100644 gcc/testsuite/g++.dg/cpp26/trivially-relocatable13.C
>  create mode 100644 gcc/testsuite/g++.dg/cpp2a/is-layout-compatible4.C
>  create mode 100644 
> gcc/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-base-of2.C
> 
> -- 
> 2.51.0
> 

Reply via email to