On Apr 8, 2013, at 10:40 AM, John McCall <[email protected]> wrote:
> On Apr 5, 2013, at 5:22 PM, Adrian Prantl <[email protected]> wrote: >> Patch for review, mostly for the IRBuilder::DisableDebugLocations() part. >> >> Do not attach a debug location to code inserted by ARC -- >> it would create a spurious line table entry at the closing } of the scope. > > Is this a problem? Just that we don't want "next" to stop here? In this particular example, what happens is as follows: Because of the way we keep track of the debug location in the backend, both ARC setup and cleanup code are associated with the closing brace (because they are emitted while closing the current lexical scope). This means that when we step through a function we may hit the closing brace first, then the return statement, and then the closing brace again. void foo(SomeObject*){ return 1; } // ARC cleanup+setup If just don't emit line numbers for the ARC setup code it will get associated with the function prologue, which is in my opinion the right thing to do. (There is no correct source line to associate it with anyway). We can argue about the cleanup code, but my intuition is that we should only point to a line in the source code if there is actually something there to point to. If don't emit a line info for the cleanup code (as in my patch), it will get associated with the return statement. -- adrian _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
