Skip to content
Snippets Groups Projects
Commit 000e9863 authored by Patrick Palka's avatar Patrick Palka
Browse files

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.
parent 9b377463
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment