Hi Eric,

you convinced me: r198715 should be much, much easier to review!

-- adrian

On Jan 7, 2014, at 13:57, Eric Christopher <[email protected]> wrote:

> Thanks.
> 
> Can you add the diff between the two revisions at least to the thread here so 
> I can take an easier look? :)
> 
> Thanks!
> 
> -eric
> 
> On Tue Jan 07 2014 at 1:55:49 PM, Adrian Prantl <[email protected]> wrote:
> 
> On Jan 7, 2014, at 13:50, Eric Christopher <[email protected]> wrote:
> 
> >
> > On Tue Jan 07 2014 at 11:31:12 AM, Adrian Prantl <[email protected]> wrote:
> > Author: adrian
> > Date: Tue Jan  7 13:24:24 2014
> > New Revision: 198699
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=198699&view=rev
> > Log:
> > Debug info: Implement a cleaner version of r198461. For symmetry with
> > C and C++ don't emit an extra lexical scope for the compound statement
> > that is the body of an Objective-C method.
> >
> > rdar://problem/15010825
> >
> >
> > Next time it would be good if you could revert the previous patch so that 
> > we only have to examine your current changes.
> 
> Sure, I can do that next time! Sorry for the extra confusion.
> >
> > 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?
> 
> 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.
> 
> Modified: cfe/trunk/test/CodeGenCXX/linetable-cleanup.cpp
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/linetable-cleanup.cpp?rev=198461&r1=198460&r2=198461&view=diff
> ==============================================================================
> --- cfe/trunk/test/CodeGenCXX/linetable-cleanup.cpp (original)
> +++ cfe/trunk/test/CodeGenCXX/linetable-cleanup.cpp Fri Jan  3 17:34:30 2014
> @@ -46,12 +46,14 @@ void bar()
> void baz()
> {
>   if (!foo())
> -    // CHECK: {{.*}} = metadata !{i32 [[@LINE+1]], i32 0, metadata !{{.*}}, 
> null}
> +    // CHECK: ![[SCOPE1:.*]] = metadata !{{{.*}}, i32 [[@LINE-1]], {{.*}}} ; 
> [ DW_TAG_lexical_block ]
> +    // CHECK: {{.*}} = metadata !{i32 [[@LINE+1]], i32 0, metadata 
> ![[SCOPE1]], null}
>     return;
> 
>   if (foo()) {
>     // no cleanup
> -    // CHECK: {{.*}} = metadata !{i32 [[@LINE+1]], i32 0, metadata !{{.*}}, 
> null}
> +    // CHECK: {{.*}} = metadata !{i32 [[@LINE+2]], i32 0, metadata 
> ![[SCOPE2:.*]], null}
> +    // CHECK: ![[SCOPE2]] = metadata !{{{.*}}, i32 [[@LINE-3]], {{.*}}} ; [ 
> DW_TAG_lexical_block ]
>     return;
>   }
>   // CHECK: ![[RETBAZ]] = metadata !{i32 [[@LINE+1]], i32 0, metadata 
> !{{.*}}, null}
> 
> It tests that the two return stmts are indeed in two different lexical scopes.
> 
> -- adrian

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to