[PATCH] Set correct source location for deallocator calls
Dehao Chen
dehao@google.com
Fri Aug 10 18:02:00 GMT 2012
On Fri, Aug 10, 2012 at 10:52 AM, Richard Henderson <rth@redhat.com> wrote:
> On 2012-08-10 10:21, Dehao Chen wrote:
>> Yes, cxx_maybe_build_cleanup sets it to UNKNOWN_LOCATION, but during
>> gimplifying, it's reset to input_location:
>>
>> gimplify.c (gimplify_call_expr)
>> 2486 /* For reliable diagnostics during inlining, it is necessary that
>> 2487 every call_expr be annotated with file and line. */
>> 2488 if (! EXPR_HAS_LOCATION (*expr_p))
>> 2489 SET_EXPR_LOCATION (*expr_p, input_location);
>>
>> Shall we remove this code? Because I don't expect the location to be
>> unknown in other cases.
>
> Hmm. Perhaps something special-cased to TRY_FINALLY/TRY_CATCH
> to set input_location itself to UNKNOWN_LOCATION for the duration
> of gimplifying the cleanup? With a big comment about how we'll be
> setting unset locations for cleanups during tree-eh lowering.
Handling TRY_FINALLY/TRY_CATCH case may not work for Java, as it also
shares gimplify.c
Or, shall we create a routine in cp frontend to let gimplify.c know
that a call_expr is auto-generated dtor, so that gimplify will not set
its location to input_location?
Thanks,
Dehao
>
>
> r~
More information about the Gcc-patches
mailing list