r243085 - Fix the cc1as crash when it outputs assembly

Rafael Espíndola rafael.espindola at gmail.com
Wed Aug 5 13:23:32 PDT 2015


It is probably very safe, so fine by me.

On 5 August 2015 at 16:19, Hans Wennborg <hans at chromium.org> wrote:
> Ping?
>
> On Thu, Jul 30, 2015 at 10:20 AM, Hans Wennborg <hans at chromium.org> wrote:
>> Rafael: ping?
>>
>> This is probably not terribly important, but I would like to get it off my list.
>>
>> On Wed, Jul 29, 2015 at 10:16 AM, Hans Wennborg <hans at chromium.org> wrote:
>>> Ping?
>>>
>>> On Mon, Jul 27, 2015 at 1:29 PM, Hans Wennborg <hans at chromium.org> wrote:
>>>> Rafael, I don't know who's the owner here but you're probably in the
>>>> best position to comment on whether this is ok for merging to 3.7.
>>>> What do you think?
>>>>
>>>> On Fri, Jul 24, 2015 at 10:53 AM, Hans Wennborg <hans at chromium.org> wrote:
>>>>> Is this something we should merge to 3.7?
>>>>>
>>>>> On Thu, Jul 23, 2015 at 7:12 PM, Steven Wu <stevenwu at apple.com> wrote:
>>>>>> Author: steven_wu
>>>>>> Date: Thu Jul 23 21:12:43 2015
>>>>>> New Revision: 243085
>>>>>>
>>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=243085&view=rev
>>>>>> Log:
>>>>>> Fix the cc1as crash when it outputs assembly
>>>>>>
>>>>>> In clang cc1as_main, when the output file type is “asm”, AsmStreamer
>>>>>> owns a formatted_raw_ostream which has a reference to FDOS
>>>>>> (raw_ostream), so AsmStreamer must be closed before FDOS is closed.
>>>>>>
>>>>>> Added:
>>>>>>     cfe/trunk/test/Misc/cc1as-asm.s
>>>>>> Modified:
>>>>>>     cfe/trunk/tools/driver/cc1as_main.cpp
>>>>>>
>>>>>> Added: cfe/trunk/test/Misc/cc1as-asm.s
>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Misc/cc1as-asm.s?rev=243085&view=auto
>>>>>> ==============================================================================
>>>>>> --- cfe/trunk/test/Misc/cc1as-asm.s (added)
>>>>>> +++ cfe/trunk/test/Misc/cc1as-asm.s Thu Jul 23 21:12:43 2015
>>>>>> @@ -0,0 +1,3 @@
>>>>>> +// Run cc1as asm output path just to make sure it works
>>>>>> +// REQUIRES: x86-registered-target
>>>>>> +// RUN: %clang -cc1as -triple x86_64-apple-macosx10.10.0 -filetype asm %s -o /dev/null
>>>>>>
>>>>>> Modified: cfe/trunk/tools/driver/cc1as_main.cpp
>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/cc1as_main.cpp?rev=243085&r1=243084&r2=243085&view=diff
>>>>>> ==============================================================================
>>>>>> --- cfe/trunk/tools/driver/cc1as_main.cpp (original)
>>>>>> +++ cfe/trunk/tools/driver/cc1as_main.cpp Thu Jul 23 21:12:43 2015
>>>>>> @@ -406,6 +406,9 @@ static bool ExecuteAssembler(AssemblerIn
>>>>>>      Failed = Parser->Run(Opts.NoInitialTextSection);
>>>>>>    }
>>>>>>
>>>>>> +  // Close Streamer first.
>>>>>> +  // It might have a reference to the output stream.
>>>>>> +  Str.reset();
>>>>>>    // Close the output stream early.
>>>>>>    BOS.reset();
>>>>>>    FDOS.reset();


More information about the cfe-commits mailing list