On 10/23/2015 02:41 PM, David Malcolm wrote:
This is a followup to:
https://gcc.gnu.org/ml/gcc-patches/2015-09/msg01696.html
(one of the individual patches has seen iteration since that, so
I'm calling the whole thing "v5" for the sake of clarity).
Patches 1-3 are a preamble:
"Improvements to description of source_location in line-map.h"
"Add stats on adhoc table to dump_line_table_statistics"
"libstdc++v3: Explicitly disable carets and colorization within
testsuite"
Patch 4:
"Reimplement diagnostic_show_locus, introducing rich_location classes (v5)"
is an updated version of the rewrite of diagnostic_show_locus,
via the new rich_location class. I believe this one is ready for trunk
and could be applied without needing the followup patches; I
have a followup patch that adds support for "fix it hints" on top
of this (PR/62314).
Patch 5:
"Add ranges to libcpp tokens (via ad-hoc data, unoptimized)"
implements token range tracking by adding range information to
the ad-hoc location table. As noted in the patch, this generalizes
source_location (aka location_t) to be both a caret and a range,
letting us track them through our existing location-tracking
mechanisms, without having to add extra fields to core data structures.
The drawback is that it's inefficient. This is addressed by patch 10,
which implements a packing scheme to avoid the ad-hoc table for most
tokens.
Patch 6:
"Track expression ranges in C frontend"
is an updated version of the patch to add tracking of expression
ranges to the C frontend, using the above mechanism.
Patch 7:
"Add plugin to recursively dump the source-ranges in a tree (v2)"
is the test plugin to demo dumping the ranges for all
sub-expressions of a complicated expression. It's unchanged since
previous versions.
Patch 8:
"Wire things up so that libcpp users get token underlines"
wires up the work from patches 4 and 5 so that most diagnostics
in frontends using libcpp will see some kind of underlining, for tokens
at least.
Patch 9:
"Delay some resolution of ad-hoc locations, preserving ranges"
tweaks things to provide underlines for some places that patch 8
missed.
Patch 10:
"Compress short ranges into source_location"
is the bit-packing optimization for patch 5.
So was there a final resolution with PCH? IIRC from our meeting PCH
blew things up by filling one of the tables.