Cool deal. Thanks!<br><br>-eric<br><br><div>On Tue Jan 07 2014 at 2:13:11 PM, Adrian Prantl <<a href="mailto:aprantl@apple.com">aprantl@apple.com</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Eric,<br>
<br>
you convinced me: r198715 should be much, much easier to review!<br>
<br>
-- adrian<br>
<br>
On Jan 7, 2014, at 13:57, Eric Christopher <<a href="mailto:echristo@gmail.com" target="_blank">echristo@gmail.com</a>> wrote:<br>
<br>
> Thanks.<br>
><br>
> Can you add the diff between the two revisions at least to the thread here so I can take an easier look? :)<br>
><br>
> Thanks!<br>
><br>
> -eric<br>
><br>
> On Tue Jan 07 2014 at 1:55:49 PM, Adrian Prantl <<a href="mailto:aprantl@apple.com" target="_blank">aprantl@apple.com</a>> wrote:<br>
><br>
> On Jan 7, 2014, at 13:50, Eric Christopher <<a href="mailto:echristo@gmail.com" target="_blank">echristo@gmail.com</a>> wrote:<br>
><br>
> ><br>
> > On Tue Jan 07 2014 at 11:31:12 AM, Adrian Prantl <<a href="mailto:aprantl@apple.com" target="_blank">aprantl@apple.com</a>> wrote:<br>
> > Author: adrian<br>
> > Date: Tue Jan  7 13:24:24 2014<br>
> > New Revision: 198699<br>
> ><br>
> > URL: <a href="http://llvm.org/viewvc/llvm-project?rev=198699&view=rev" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project?rev=198699&view=rev</a><br>
> > Log:<br>
> > Debug info: Implement a cleaner version of r198461. For symmetry with<br>
> > C and C++ don't emit an extra lexical scope for the compound statement<br>
> > that is the body of an Objective-C method.<br>
> ><br>
> > rdar://problem/15010825<br>
> ><br>
> ><br>
> > Next time it would be good if you could revert the previous patch so that we only have to examine your current changes.<br>
><br>
> Sure, I can do that next time! Sorry for the extra confusion.<br>
> ><br>
> > I seem to recall your previous patch changed some C++ testcases and that your new patch hasn't changed them back. What's going on there? It may make sense to revert this and your previous patch and reapply with just the fixes needed for your objective c problem?<br>

><br>
> The previous patch added a couple of scoping-related tests to the C++ test cases that were not there originally, and they are still valid.<br>
><br>
> Modified: cfe/trunk/test/CodeGenCXX/<u></u>linetable-cleanup.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/linetable-cleanup.cpp?rev=198461&r1=198460&r2=198461&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/cfe/trunk/test/<u></u>CodeGenCXX/linetable-cleanup.<u></u>cpp?rev=198461&r1=198460&r2=<u></u>198461&view=diff</a><br>

> ==============================<u></u>==============================<u></u>==================<br>
> --- cfe/trunk/test/CodeGenCXX/<u></u>linetable-cleanup.cpp (original)<br>
> +++ cfe/trunk/test/CodeGenCXX/<u></u>linetable-cleanup.cpp Fri Jan  3 17:34:30 2014<br>
> @@ -46,12 +46,14 @@ void bar()<br>
> void baz()<br>
> {<br>
>   if (!foo())<br>
> -    // CHECK: {{.*}} = metadata !{i32 [[@LINE+1]], i32 0, metadata !{{.*}}, null}<br>
> +    // CHECK: ![[SCOPE1:.*]] = metadata !{{{.*}}, i32 [[@LINE-1]], {{.*}}} ; [ DW_TAG_lexical_block ]<br>
> +    // CHECK: {{.*}} = metadata !{i32 [[@LINE+1]], i32 0, metadata ![[SCOPE1]], null}<br>
>     return;<br>
><br>
>   if (foo()) {<br>
>     // no cleanup<br>
> -    // CHECK: {{.*}} = metadata !{i32 [[@LINE+1]], i32 0, metadata !{{.*}}, null}<br>
> +    // CHECK: {{.*}} = metadata !{i32 [[@LINE+2]], i32 0, metadata ![[SCOPE2:.*]], null}<br>
> +    // CHECK: ![[SCOPE2]] = metadata !{{{.*}}, i32 [[@LINE-3]], {{.*}}} ; [ DW_TAG_lexical_block ]<br>
>     return;<br>
>   }<br>
>   // CHECK: ![[RETBAZ]] = metadata !{i32 [[@LINE+1]], i32 0, metadata !{{.*}}, null}<br>
><br>
> It tests that the two return stmts are indeed in two different lexical scopes.<br>
><br>
> -- adrian<br>
<br>
</blockquote>