On Wed, Aug 8, 2012 at 8:56 AM, Richard Henderson <r...@redhat.com> wrote:
> On 08/07/2012 06:25 AM, Richard Guenther wrote:
>> (is re-setting _every_ stmt location really ok in all cases?)
>
> I'm certain that it's not, though you can't tell that from C++.
>
> Examine instead a Java test case using try-finally.  In Java the
> contents of the finally would be incorrectly relocated from their
> original source line to the new line Dehao has decided upon.

This makes sense. I was thinking what else can reside in the finally
block, and apparently I was ignoring Java...

>
> I can see the desire for wanting the call to ~t() to appear from
> the return statement.  And for C++ we'll get the correct lines for
> the contents of ~t() post inlining (which happens after tree-eh).

Even if inline gives it right source position, it'll still have
incorrect inline stack.

>
> But unless the C++ front end uses something like UNKNOWN_LOCATION
> on the destructor call, I don't see how we can tell the Java and
> C++ cases apart.  And if we can't, then I don't think we can make
> this change at all.

Then we should probably assign UNKNOWN_LOCATION for these destructor
calls, what do you guys think?

Thanks,
Dehao

>
>
> r~

Reply via email to