This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Ada, treelang needs to be converted to --enable-mapped-location
- From: Per Bothner <per at bothner dot com>
- To: gcc at gcc dot gnu dot org
- Date: Wed, 29 Sep 2004 15:50:01 -0700
- Subject: Ada, treelang needs to be converted to --enable-mapped-location
I'm close to checking in patches to support --enable-mapped-location
for Java. At that point all of the default-enabled languages work
more-or-less (i.e. with a small number of testsuite regressions).
If we can fix the regressions, and there are clear benefits (e.g.
measurable compilation-speed improvements or better errors reporting)
we might make --enable-mapped-location the default for 4.0; if not it
will at the very latest become the default in stage1 of 4.1.
However, we can't rip out the old --disable-mapped-location code
until the remaining front-ends are converted, and in any case they
should be fixed soon. The remaining ones in CVS are treelang and
Ada. It's on the treelang "to-do" list. Please consider this a
request to make this high-priority on the Ada "to-do" list.
Converting the treelang or Ada front-ends doesn't look difficult.
It didn't take me long to convert (with Paul Brooks's help) the
Fortran front-end, even though I was unfamilar with it. When I
look at the Ada front-end it looks straight-forward too. I can
sketch out what is needed and/or provide advice, but I think it is
best the respective front-end maintainers make and test the actual
changes.
Here for illustration is the patch to convert the Fortran front-end:
http://gcc.gnu.org/ml/gcc-patches/2004-09/msg00635.html
The basic constraint is you cannot set filename or line independently
in input_location, DECL_SOURCE_LOCATION, or EXPR_LOCATION, but must
get them from the line_table. And it recommended that you "allocate"
the source_location integers during initial lexing. Note you can
optionally also remember column numbers of declarations and expressions.
--
--Per Bothner
per@bothner.com http://per.bothner.com/