Re: __FUNCTION__

Richard Henderson (rth@twiddle.net)
Tue, 8 Jan 2002 18:12:02 -0800


On Tue, Jan 08, 2002 at 03:11:47PM -0800, Greg KH wrote:
> Any reason _why_ they would want to break tons of existing code in this
> manner?

__FUNCTION__ was never a string literal in g++ because you can't decide
what the name of a template is until you instantiate it.

Having __FUNCTION__ be a magic cpp thingy means there is a translation
phase violation. Preprocessor macros are expanded in phase 4, string
concatenation happens in phase 6, syntactic and symantic analysis
doesn't happen until phase 7.

So changing this allows us to change two things: (1) the integrated
preprocessor can concatenate adjacent string literals and do lexical
analysis exactly as described in the standard, and (2) removes an
irrelevant difference between c and c++ so that at some point we can
support both with a single front-end.

r~
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/