<br><br><div>On Mon Jan 06 2014 at 11:30:19 AM, Robinson, Paul <<a href="mailto:Paul_Robinson@playstation.sony.com">Paul_Robinson@playstation.sony.com</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> -----Original Message-----<br>
> From: <a href="mailto:cfe-commits-bounces@cs.uiuc.edu" target="_blank">cfe-commits-bounces@cs.uiuc.<u></u>edu</a> [mailto:<a href="mailto:cfe-commits-" target="_blank">cfe-commits-</a><br>
> <a href="mailto:bounces@cs.uiuc.edu" target="_blank">bounces@cs.uiuc.edu</a>] On Behalf Of Adrian Prantl<br>
> Sent: Monday, January 06, 2014 8:29 AM<br>
> To: <a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a><br>
> Cc: <a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
> Subject: Re: r198461 - Debug info: Ensure that the last stop point in a<br>
> function is still within<br>
><br>
><br>
> On Jan 5, 2014, at 8:22 PM, <a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a> wrote:<br>
><br>
> ><br>
> ><br>
> > On Fri Jan 03 2014 at 4:00:30 PM, Adrian Prantl <<a href="mailto:aprantl@apple.com" target="_blank">aprantl@apple.com</a>><br>
> wrote:<br>
> ><br>
> > On Jan 3, 2014, at 15:53, Eric Christopher <<a href="mailto:echristo@gmail.com" target="_blank">echristo@gmail.com</a>> wrote:<br>
> ><br>
> >> There's not enough information in the commit message, the comments,<br>
> or the test cases to know what's broken or fixed here. Why is forcing<br>
> the block the correct solution here? What is it working around?<br>
> >><br>
> >><br>
> ><br>
> > Let's use this as an example:<br>
> ><br>
> >><br>
> ==============================<u></u>==============================<u></u>============<br>
> ======<br>
> >> --- cfe/trunk/test/CodeGenObjC/<u></u>arc-linetable.m (original)<br>
> >> +++ cfe/trunk/test/CodeGenObjC/<u></u>arc-linetable.m Fri Jan  3 17:34:30<br>
> 2014<br>
> ><br>
> > - (int)testNoSideEffect:(<u></u>NSString *)foo {<br>
> > int x = 1;<br>
> > return 1; // Return expression<br>
> > }<br>
> ><br>
> > Before this fix, a user would set a breakpoint at the return<br>
> expression and then attempt to print x and it would fail, because the<br>
> instruction that is at that line would be in the DW_TAG_subprogram<br>
> lexical scope (instead of the lexical scope of the function body<br>
> compound statement which contains x).<br>
> ><br>
> > I'm confused by this - Clang doesn't emit a separate lexical scope for<br>
> the top level compound statement of a function...<br>
<br>
I haven't checked lately but Clang was putting locals into a<br>
separate scope (versus parameters in the subprogram scope).<br>
Can't put my finger on the PR where we discussed it though.<br></blockquote><div><br></div><div>It was at one point, yes. I believe I fixed it for C++ at least, I assume C too, but that might not have affected ObjC. </div>