https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99317
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Right. basically what I am saying is: x ? void* : char* implies an implict conversion of the second operand to void*. Without the cast, there is no implict conversion in standard C, that is what the warning is about. With -pendatic-errors, the warning turns into an error.