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