https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65455
--- Comment #10 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- On Wed, 18 Mar 2015, jens.gustedt at inria dot fr wrote: > (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.) There isn't yet a conclusion to DR#423, but the committee discussion in N1892 says 'Specifically, the controlling expression of a generic selection "was very carefully not added" to the list of cases where lvalue conversion is not done.' (i.e. that conversion happens to all expressions unless excluded from happening). There is no indication of a committee direction contradicting the approach I chose for GCC (even if the committee isn't quite sure of how to handle atomics there, and has suggested making qualifiers on function return types not part of the type).