[llvm] r211282 - MCNullStreamer: assign file IDs to resolve crashes and errors

Renato Golin renato.golin at linaro.org
Fri Jun 20 01:22:02 PDT 2014


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) override { 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



More information about the llvm-commits mailing list