On 05/15/2012 07:18 AM, Dodji Seketeli wrote:
+paste_tokens (cpp_reader *pfile, source_location lhs_location,
If in the long run we want the location passed in to be the ## location,
let's drop the "lhs" from the parameter name.
- const cpp_token *result = cpp_get_token (pfile);
+ const cpp_token *result = cpp_get_token_with_location (pfile, NULL);
I find the difference between these two functions confusing, since you
aren't passing in a pointer for the location to go into. I see that
cpp_get_token_with_location sets pfile->set_invocation_location, which
is documented to mean
/* When expanding a macro at top-level, this is the location of the
macro invocation. */
source_location invocation_location;
/* True if this call to cpp_get_token should consider setting
invocation_location. */
bool set_invocation_location;
But presumably get_token_no_padding isn't only called when we're
starting to expand a top-level macro. And as far as I can tell the
value of invocation_location is only used when we aren't tracking
virtual locations anyway. So why does the change above fix the testcase?
Jason