On Tue, Sep 15, 2015 at 12:14:22PM +0200, Richard Biener wrote:
> > diff --git a/gcc/cp/parser.h b/gcc/cp/parser.h
> > index 760467c..c7558a0 100644
> > --- a/gcc/cp/parser.h
> > +++ b/gcc/cp/parser.h
> > @@ -61,6 +61,8 @@ struct GTY (()) cp_token {
> > BOOL_BITFIELD purged_p : 1;
> > /* The location at which this token was found. */
> > location_t location;
> > + /* The source range at which this token was found. */
> > + source_range range;
>
> Is it just me or does location now feel somewhat redundant with range? Can't
> we
> compress that somehow?
For a token I'd expect it is redundant, I don't see how it would be useful
for a single preprocessing token to have more than start and end locations.
But generally, for expressions, 3 locations make sense.
If you have
abc + def
~~~~^~~~~
then having a range is useful. In any case, I'm surprised that the ranges
aren't encoded in
location_t (the data structures behind it, where we already stick also
BLOCK pointer).
Jakub