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
