[PATCH] D51315: [debuginfo] generate debug info with asm+.file
Brian Cain via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 28 09:24:40 PDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rL340839: [debuginfo] generate debug info with asm+.file (authored by bcain, committed by ).
Changed prior to commit:
https://reviews.llvm.org/D51315?vs=162738&id=162890#toc
Repository:
rL LLVM
https://reviews.llvm.org/D51315
Files:
llvm/trunk/lib/MC/MCParser/AsmParser.cpp
llvm/trunk/test/MC/AsmParser/directive_file-3.s
Index: llvm/trunk/lib/MC/MCParser/AsmParser.cpp
===================================================================
--- llvm/trunk/lib/MC/MCParser/AsmParser.cpp
+++ llvm/trunk/lib/MC/MCParser/AsmParser.cpp
@@ -3348,17 +3348,17 @@
}
}
- // 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);
Index: llvm/trunk/test/MC/AsmParser/directive_file-3.s
===================================================================
--- llvm/trunk/test/MC/AsmParser/directive_file-3.s
+++ llvm/trunk/test/MC/AsmParser/directive_file-3.s
@@ -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:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51315.162890.patch
Type: text/x-patch
Size: 2224 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180828/1dc837ec/attachment.bin>
More information about the llvm-commits
mailing list