diff options
author | Patrick Palka <ppalka@redhat.com> | 2022-11-29 19:25:37 -0500 |
---|---|---|
committer | Patrick Palka <ppalka@redhat.com> | 2022-11-29 19:25:37 -0500 |
commit | 000e9863120cbc75a0f8d497264519974c97669f (patch) | |
tree | e5389b1fcb398cbdb2016d312642d4ec7d8e3910 /libgcc/libgcc2.c | |
parent | 9b377463856c8ca985c0a8c95de8712ffa4b5ef6 (diff) | |
download | gcc-000e9863120cbc75a0f8d497264519974c97669f.zip gcc-000e9863120cbc75a0f8d497264519974c97669f.tar.gz gcc-000e9863120cbc75a0f8d497264519974c97669f.tar.bz2 |
c++: ICE with <=> of incompatible pointers [PR107542]
In a SFINAE context composite_pointer_type returns error_mark_node if
the given pointer types are incompatible. But the SPACESHIP_EXPR case
of cp_build_binary_op wasn't prepared for this error_mark_node result,
which led to an ICE (from spaceship_comp_cat) for the below testcase.
(In a non-SFINAE context composite_pointer_type issues a permerror and
returns cv void* in this case, so this ICE seems specific to SFINAE.)
PR c++/107542
gcc/cp/ChangeLog:
* typeck.cc (cp_build_binary_op): In the SPACESHIP_EXPR case,
handle an error_mark_node result type.
gcc/testsuite/ChangeLog:
* g++.dg/cpp2a/spaceship-sfinae2.C: New test.
Diffstat (limited to 'libgcc/libgcc2.c')
0 files changed, 0 insertions, 0 deletions