r198699 - Debug info: Implement a cleaner version of r198461. For symmetry with
Adrian Prantl
aprantl at apple.com
Tue Jan 7 14:10:03 PST 2014
Hi Eric,
you convinced me: r198715 should be much, much easier to review!
-- adrian
On Jan 7, 2014, at 13:57, Eric Christopher <echristo at gmail.com> 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 <aprantl at apple.com> wrote:
>
> On Jan 7, 2014, at 13:50, Eric Christopher <echristo at gmail.com> wrote:
>
> >
> > On Tue Jan 07 2014 at 11:31:12 AM, Adrian Prantl <aprantl at apple.com> 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
More information about the cfe-commits
mailing list