Jason Merrill <ja...@redhat.com> writes:

> It is sounding to me like the first location (xI) gets you the next
> virtual location in the unwinding process, whereas the second location
> (yI) gets you the spelling location of the token in the definition of
> a macro.

Right.

> Certainly all the calls to tokens_buff_add_token pass src->src_loc for
> the second.  So why don't we look up the second location in the macro
> definition when we need it rather than store a copy in the map?

Because when you have the first location, looking up the second is not
easy.  Note that the information about the arguments of a function-like
macro is freed right in enter_macro_context by delete_macro_args once we
have recorded the locations for the macro expansion.  Getting the src
that matches the loc of a token coming from an argument of the macro
expansion, once that argument has been freed is not easier than just
storing a copy of the src->src_loc we need.  So Tom and I decided to let
that optimization for later once we are sure the whole thing works and
performs well enough.

-- 
                Dodji

Reply via email to