[llvm] r211282 - MCNullStreamer: assign file IDs to resolve crashes and errors
Rafael EspĂndola
rafael.espindola at gmail.com
Fri Jun 20 05:57:08 PDT 2014
Oh, looks like this found a bug from when target streamers were first
introduced. Fixing.
On 20 June 2014 08:47, Rafael EspĂndola <rafael.espindola at gmail.com> wrote:
> It crashes with:
>
> ./bin/llc -O0 -filetype=null
> /home/espindola/llvm/llvm/test/DebugInfo/global.ll -o test.o
> -mtriple=arm-linux-gnu
>
> On 20 June 2014 08:08, Alp Toker <alp at nuanti.com> wrote:
>> Do you know how I could get a backtrace? There's not much to go on here
>>
>>
>> On 20 June 2014 09:22:02 BST, Renato Golin <renato.golin at linaro.org> wrote:
>>>
>>> Hi Alp,
>>>
>>> This commit is breaking with a segfault on ARM:
>>>
>>>
>>> http://lab.llvm.org:8011/builders/clang-native-arm-cortex-a15/builds/1788/steps/check-all/logs/LLVM%3A%3Aglobal.ll
>>>
>>> cheers,
>>> --renato
>>>
>>> On 19 June 2014 18:15, Alp Toker <alp at nuanti.com> wrote:
>>>>
>>>> Author: alp
>>>> Date: Thu Jun 19 12:15:36 2014
>>>> New Revision: 211282
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=211282&view=rev
>>>> Log:
>>>> MCNullStreamer: assign file IDs to resolve crashes and errors
>>>>
>>>> Use the MCStreamer base implementations for file ID tracking instead of
>>>> overriding them as
>>>> no-ops.
>>>>
>>>> Avoids assertions when streaming Dwarf debug info, and fixes ASM parsing
>>>> of loc
>>>> and file directives.
>>>>
>>>> Modified:
>>>> llvm/trunk/lib/MC/MCNullStreamer.cpp
>>>> llvm/trunk/test/DebugInfo/global.ll
>>>> llvm/trunk/test/MC/AsmParser/directive_file.s
>>>> llvm/trunk/test/MC/AsmParser/directive_line.s
>>>> llvm/trunk/test/MC/AsmParser/directive_loc.s
>>>>
>>>> Modified: llvm/trunk/lib/MC/MCNullStreamer.cpp
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCNullStreamer.cpp?rev=211282&r1=211281&r2=211282&view=diff
>>>> ________________________________
>>>>
>>>> --- llvm/trunk/lib/MC/MCNullStreamer.cpp (original)
>>>> +++ llvm/trunk/lib/MC/MCNullStreamer.cpp Thu Jun 19 12:15:36 2014
>>>> @@ -81,15 +81,7 @@ namespace {
>>>> unsigned char Value = 0) overri!
>>>> de {
>>>> return false; }
>>>>
>>>>
>>>> void EmitFileDirective(StringRef Filename) override {}
>>>> - unsigned EmitDwarfFileDirective(unsigned FileNo, StringRef
>>>> Directory,
>>>> - StringRef Filename,
>>>> - unsigned CUID = 0) override {
>>>> - return 0;
>>>> - }
>>>> - void EmitDwarfLocDirective(unsigned FileNo, unsigned Line,
>>>> - unsigned Column, unsigned Flags,
>>>> - unsigned Isa, unsigned Discriminator,
>>>> - StringRef FileName) override {}
>>>> +
>>>> void EmitInstruction(const MCInst &Inst, const MCSubtargetInfo&)
>>>> override {}
>>>>
>>>> void EmitBundleAlignMode(unsigned AlignPow2) override {}
>>>>
>>>> Modified: llvm/trunk/test/DebugInfo/global.ll
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/global.ll?rev=211282&r1=211281&r2=211282&view=diff
>>>> ________________________________
>>>>
>>>> --- llvm/trunk/test/DebugInfo/global.ll (original)
>>>> +++ llvm/trunk/test/DebugInfo/global.ll Thu Jun 19 12:15:36 2014
>>>> @@ -3,6 +3,9 @@
>>>> ; RUN: %llc_dwarf -O0 -filetype=obj < %s > %t
>>>> ; RUN: llvm-dwarfdump %t | FileCheck %s
>>>>
>>>> +; Also test that the null streamer doesn't crash with debug info.
>>>> +; RUN: %llc_dwarf -O0 -filetype=null < %s
>>>> +
>>>> ; generated from the following source compiled to bitcode with clang -g
>>>> -O1
>>>> ; static int i;
>>>> ; int main() {
>>>>
>>>> Modified: llvm/trunk/test/MC/AsmParser/directive_file.s
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AsmParser/directive_file.s?rev=211282&r1=211281&r2=211282&view=diff
>>>> ________________________________
>>>>
>>>> --- llvm/trunk/test/MC/AsmParser/directive_file.s (original)
>>>> +++ llvm/trunk/test/MC/AsmParser/directive_file.s Thu Jun 19 12:15:36
>>>> 2014
>>>> @@ -1,4 +1,5 @@
>>>> # RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
>>>> +# RUN: llvm-mc -triple i386-unknown-unknown %s -filetype=null
>>>>
>>>> .file "hello"
>>>> .file 1 "worl\144" # "\144" is "d"
>>>>
>>>> Modified: llvm/trunk/test/MC/AsmParser/directive_line.s
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AsmParser/directive_line.s?rev=211282&r1=211281&r2=211282&view=diff
>>>> ________________________________
>>>>
>>>> --- llvm/trunk/test/MC/AsmParser/directive_line.s (original)
>>>> +++ llvm/trunk/test/MC/AsmParser/directive_line.s Thu Jun 19 12:15:36
>>>> 2014
>>>> @@ -1,4 +1,5 @@
>>>> # RUN: llvm-mc -triple i386-unknown-unknown %s
>>>> +# RUN: llvm-mc -triple i386-unknown-unknown %s -filetype=null
>>>> # FIXME: Actually test the output.
>>>>
>>>> .line
>>>>
>>>> Modified: llvm/trunk/test/MC/AsmParser/directive_loc.s
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AsmParser/directive_loc.s?rev=211282&r1=211281&r2=211282&view=diff
>>>> ________________________________
>>>>
>>>> --- llvm/trunk/test/MC/AsmParser/directive_loc.s (original)
>>>> +++ llvm/trunk/test/MC/AsmParser/directive_loc.s Thu Jun 19 12:15:36
>>>> 2014
>>>> @@ -1,4 +1,5 @@
>>>> # RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
>>>> +# RUN: llvm-mc -triple i386-unknown-unknown %s -filetype=null
>>>>
>>>> .file 1 "hello"
>>>> # CHECK: .file 1 "hello"
>>>>
>>>>
>>>> ________________________________
>>>>
>>>> llvm-commits mailing list
>>>> llvm-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
>> --
>> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
More information about the llvm-commits
mailing list