Christian, the behavior you are seeing is what the standard specifies. String literals are now of type 'const char[n]', but there is a deprecated conversion from string literal to 'char *', which is why it works without the ?: expression. You can restore the old semantics with -fno-const-strings. Jason