This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [C++ Patch] Improve finish_pseudo_destructor_expr location


On 09/12/2013 04:12 PM, Richard Biener wrote:
On Wed, Sep 11, 2013 at 9:28 PM, Paolo Carlini <paolo.carlini@oracle.com> wrote:
Hi,

when yesterday I analyzed a bit c++/58363 and eventually I committed a
pretty printing fix I noticed that the column was wrong for the pseudo
destructor expression m.~f, pointing at the end. A fix turns out to be
rather simple, because finish_pseudo_destructor_expr was simply not getting
a location_t argument, I think it's also rather complete vs templates,
otherwise it would not do the right thing for c++/58363 itself for example,
when the error message is produced by unify_arg_conversion.

Note, in tsubst_copy_and_build I simply pass input_location, not
EXPR_LOCATION (t), which would cause a regression for the error @ line 22 of
pseudodtor3.C (because the location of t is UNKNOWN at that point during
substitution whereas in fact the final location of the error messages was
already Ok), neither EXPR_LOC_OR_HERE, which would buy nothing because
tsubst_copy_and_build at the beginning has code which assigns input_location
the EXPR_LOCATION (t), in case it's known.

Tested x86_64-linux.
cp-tree.h misisng in commit and changelog.

Richard.
Argh, sorry, will fix momentarily.

Paolo.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]