https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65455
--- Comment #8 from Jens Gustedt <jens.gustedt at inria dot fr> --- (Perhaps gcc interprets _Generic as you say, but even the standard committee doesn't agree on that interpretation, and other compiler implementors don't agree either. Nothing in the standard says that it is an rvalue, nor that it has to undergo any conversion. Conversion for non-evaluated expressions simply doesn't exist in the standard. The standard explicitly asks for compatible type of the expression itself, it says nothing about unqualified type.)