void-packages/srcpkgs/llvm/patches/llvm-3.1-fix-debug-line-info.patch
2013-01-04 10:17:21 +01:00

64 lines
2.5 KiB
Diff

From 737fdba46f2b2b7d39bc728d15ea2334c44779e0 Mon Sep 17 00:00:00 2001
From: Ben Longbons <b.r.longbons@gmail.com>
Date: Fri, 29 Jun 2012 12:58:34 -0700
Subject: [PATCH] Revert "Patch to set is_stmt a little better for prologue
lines in a function."
This meants that the debugger could find meaningful line information.
This reverts commit 60b35f408bc3194e7ea4e96367c0b42dc5e7f850.
---
lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 7 ++-----
test/DebugInfo/X86/ending-run.ll | 6 ++----
2 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
index 3e79a6d..24aedfb 100644
--- lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -1093,15 +1093,12 @@ void DwarfDebug::beginInstruction(const MachineInstr *MI) {
if (!MI->isDebugValue()) {
DebugLoc DL = MI->getDebugLoc();
if (DL != PrevInstLoc && (!DL.isUnknown() || UnknownLocations)) {
- unsigned Flags = 0;
+ unsigned Flags = DWARF2_FLAG_IS_STMT;
PrevInstLoc = DL;
if (DL == PrologEndLoc) {
Flags |= DWARF2_FLAG_PROLOGUE_END;
PrologEndLoc = DebugLoc();
}
- if (PrologEndLoc.isUnknown())
- Flags |= DWARF2_FLAG_IS_STMT;
-
if (!DL.isUnknown()) {
const MDNode *Scope = DL.getScope(Asm->MF->getFunction()->getContext());
recordSourceLine(DL.getLine(), DL.getCol(), Scope, Flags);
@@ -1382,7 +1379,7 @@ void DwarfDebug::beginFunction(const MachineFunction *MF) {
MF->getFunction()->getContext());
recordSourceLine(FnStartDL.getLine(), FnStartDL.getCol(),
FnStartDL.getScope(MF->getFunction()->getContext()),
- 0);
+ DWARF2_FLAG_IS_STMT);
}
}
diff --git a/test/DebugInfo/X86/ending-run.ll b/test/DebugInfo/X86/ending-run.ll
index 6935c47..0cd3de1 100644
--- test/DebugInfo/X86/ending-run.ll
+++ test/DebugInfo/X86/ending-run.ll
@@ -1,11 +1,9 @@
; RUN: llc -mtriple=x86_64-apple-darwin %s -o %t -filetype=obj
; RUN: llvm-dwarfdump %t | FileCheck %s
-; Check that the line table starts at 7, not 4, but that the first
-; statement isn't until line 8.
+; Check that the line table starts at 7, not 4.
-; CHECK-NOT: 0x0000000000000000 7 0 1 0 is_stmt
-; CHECK: 0x0000000000000000 7 0 1 0
+; CHECK: 0x0000000000000000 7 0 1 0 is_stmt
; CHECK: 0x0000000000000004 8 18 1 0 is_stmt prologue_end
define i32 @callee(i32 %x) nounwind uwtable ssp {
--
1.7.10