[llvm] r340839 - [debuginfo] generate debug info with asm+.file

via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 19 02:05:24 PDT 2018


Hi Brian,

It seems your change is causing two tests in the GDB 7.8 test suite to hit an assertion failure. I have put the details in PR38994. Can you please take a look?

Douglas Yung

> -----Original Message-----
> From: llvm-commits [mailto:llvm-commits-bounces at lists.llvm.org] On
> Behalf Of Brian Cain via llvm-commits
> Sent: Tuesday, August 28, 2018 9:24
> To: llvm-commits at lists.llvm.org
> Subject: [llvm] r340839 - [debuginfo] generate debug info with
> asm+.file
> 
> Author: bcain
> Date: Tue Aug 28 09:23:39 2018
> New Revision: 340839
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=340839&view=rev
> Log:
> [debuginfo] generate debug info with asm+.file
> 
> Summary:
> For assembly input files, generate debug info even when the .file
> directive is present, provided it does not include a file-number
> argument.  Fixes PR38695.
> 
> Reviewers: probinson, sidneym
> 
> Subscribers: aprantl, hiraditya, JDevlieghere, llvm-commits
> 
> Differential Revision: https://reviews.llvm.org/D51315
> 
> 
> Added:
>     llvm/trunk/test/MC/AsmParser/directive_file-3.s
> Modified:
>     llvm/trunk/lib/MC/MCParser/AsmParser.cpp
> 
> Modified: llvm/trunk/lib/MC/MCParser/AsmParser.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/MC/MCParser/AsmParser.cpp?rev=340839&r1=340838&r
> 2=340839&view=diff
> =======================================================================
> =======
> --- llvm/trunk/lib/MC/MCParser/AsmParser.cpp (original)
> +++ llvm/trunk/lib/MC/MCParser/AsmParser.cpp Tue Aug 28 09:23:39 2018
> @@ -3348,17 +3348,17 @@ bool AsmParser::parseDirectiveFile(SMLoc
>      }
>    }
> 
> -  // In case there is a -g option as well as debug info from directive
> .file,
> -  // we turn off the -g option, directly use the existing debug info
> instead.
> -  // Also reset any implicit ".file 0" for the assembler source.
> -  if (Ctx.getGenDwarfForAssembly()) {
> -    Ctx.getMCDwarfLineTable(0).resetRootFile();
> -    Ctx.setGenDwarfForAssembly(false);
> -  }
> -
>    if (FileNumber == -1)
>      getStreamer().EmitFileDirective(Filename);
>    else {
> +    // In case there is a -g option as well as debug info from
> directive .file,
> +    // we turn off the -g option, directly use the existing debug info
> instead.
> +    // Also reset any implicit ".file 0" for the assembler source.
> +    if (Ctx.getGenDwarfForAssembly()) {
> +      Ctx.getMCDwarfLineTable(0).resetRootFile();
> +      Ctx.setGenDwarfForAssembly(false);
> +    }
> +
>      MD5::MD5Result *CKMem = nullptr;
>      if (HasMD5) {
>        CKMem = (MD5::MD5Result *)Ctx.allocate(sizeof(MD5::MD5Result),
> 1);
> 
> Added: llvm/trunk/test/MC/AsmParser/directive_file-3.s
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/test/MC/AsmParser/directive_file-
> 3.s?rev=340839&view=auto
> =======================================================================
> =======
> --- llvm/trunk/test/MC/AsmParser/directive_file-3.s (added)
> +++ llvm/trunk/test/MC/AsmParser/directive_file-3.s Tue Aug 28 09:23:39
> 2018
> @@ -0,0 +1,24 @@
> +// RUN: llvm-mc -g -triple i386-unknown-unknown  %s | FileCheck -
> check-prefix=CHECK-DEFAULT %s
> +// RUN: llvm-mc -g -triple i386-unknown-unknown %s -filetype=obj |
> obj2yaml | FileCheck -check-prefix=CHECK-DEBUG %s
> +
> +// Test for Bug 38695
> +// This testcase has a single function and a .file directive
> +// without the [file-num] argument.  When compiled with -g,
> +// this testcase will not report error, and generate new
> +// debug info.
> +
> +        .file "hello"
> +.text
> +
> +f1:
> +        nop
> +.size f1, .-f1
> +
> +// CHECK-DEFAULT: .file "hello"
> +
> +// CHECK-DEBUG:  Sections:
> +// CHECK-DEBUG:  - Name:            .text
> +// CHECK-DEBUG:  - Name:            .debug_info
> +// CHECK-DEBUG:  - Name:            .rel.debug_info
> +// CHECK-DEBUG:    Info:            .debug_info
> +// CHECK-DEBUG:  Symbols:
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list