r243085 - Fix the cc1as crash when it outputs assembly

Hans Wennborg hans at chromium.org
Wed Jul 29 10:16:05 PDT 2015


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();
>>>
>>>
>>>
>>> _______________________________________________
>>> cfe-commits mailing list
>>> cfe-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list