forked from OSchip/llvm-project
[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 llvm-svn: 340839
This commit is contained in:
parent
5167e2d1af
commit
3e0ca5708f
|
@ -3348,17 +3348,17 @@ bool AsmParser::parseDirectiveFile(SMLoc DirectiveLoc) {
|
|||
}
|
||||
}
|
||||
|
||||
// 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);
|
||||
|
|
|
@ -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:
|
Loading…
Reference in New Issue