On Mon, Jun 17, 2013 at 2:37 PM, Robinson, Paul
<[email protected]> wrote:
>> From: Eric Christopher [mailto:[email protected]]
>> Sent: Monday, June 17, 2013 2:32 PM
>> To: Robinson, Paul
>> Cc: Adrian Prantl; Nadav Rotem; [email protected]
>> Subject: Re: r183597 - Debug info: An if condition now creates a lexical
>> scope of its own.
>>
>> On Mon, Jun 17, 2013 at 2:29 PM, Robinson, Paul
>> <[email protected]> wrote:
>> >> From: [email protected] [mailto:cfe-commits-
>> >> [email protected]] On Behalf Of Eric Christopher
>> >> Sent: Monday, June 10, 2013 4:05 PM
>> >> To: Adrian Prantl
>> >> Cc: Nadav Rotem; [email protected]
>> >> Subject: Re: r183597 - Debug info: An if condition now creates a
>> lexical
>> >> scope of its own.
>> >>
>> >> On Mon, Jun 10, 2013 at 3:56 PM, Adrian Prantl <[email protected]>
>> >> wrote:
>> >> > (CC'ing John because he understands the intricacies of LexicalScope
>> >> better than I do)
>> >> >
>> >> > On the first glimpse LexicalScope appears to be a subclass of
>> >> RunCleanupsScope that additionally emits a (DebugInfo-)LexicalScope.
>> But
>> >> looking at the destructors it appears that they have slightly
>> different
>> >> semantics: ~LexicalScope runs ForceCleanup and ~RunCleanupsScope
>> >> apparently doesn't.
>> >> >
>> >> > I'm wary that switching to Lexicalscope in
>> >> CodeGenFunction::EmitIfStmt() might lead to tricky ARC or EH-related
>> >> problems because of that.
>> >> >
>> >> > Does anyone have an opinion on that?
>> >>
>> >> That bit was added here:
>> >>
>> >> commit 495cfa46300979642acde8d93a1f21c9291dac98
>> >> Author: Nadav Rotem <[email protected]>
>> >> Date:   Sat Mar 23 06:43:35 2013 +0000
>> >>
>> >>     Make clang to mark static stack allocations with lifetime markers
>> >> to enable a more aggressive stack coloring.
>> >>     Patch by John McCall with help by Shuxin Yang.
>> >>     rdar://13115369
>> >>
>> >>
>> >> and oddly not to RunCleanupsScope.
>> >>
>> >> Nadav?
>> >>
>> >> -eric
>> >
>> > Looks like ~LexicalScope() just wants RunCleanupsScope::ForceCleanup()
>> > to happen before rescopeLabels().  All the right stuff happens in the
>> right
>> > order if you change the RunCleanupsScope instance to LexicalScope.
>> > (RunCleanupsScope::ForceCleanup() does pretty much exactly the same
>> thing
>> > as ~RunCleanupsScope() so it works out.  It could be done in a more
>> obvious
>> > way, but functionally they're equivalent.)
>> >
>>
>> Agreed. I was just curious why Nadav changed one, but not the other.
>>
>> Nadav? :)
>>
>> -eric
>
> Because rescopeLabels() is part of LexicalScope and not RunCleanupsScope?
> I don't see what there would be to change in ~RunCleanupsScope.
>

.. The patch we're talking about is the one that added rescopeLabels.

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

Reply via email to