From d16f2a73264a8247437278b768dd3842b02b57b3 Mon Sep 17 00:00:00 2001 From: Jim Laskey Date: Mon, 19 Jun 2006 19:49:42 +0000 Subject: [PATCH] References need to be section relative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28861 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/DwarfWriter.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/CodeGen/DwarfWriter.cpp b/lib/CodeGen/DwarfWriter.cpp index 61697c634d6..3ca968672c7 100644 --- a/lib/CodeGen/DwarfWriter.cpp +++ b/lib/CodeGen/DwarfWriter.cpp @@ -1205,7 +1205,7 @@ DWLabel DwarfWriter::NewString(const std::string &String) { /// AddSourceLine - Add location information to specified debug information /// entry. -void DwarfWriter::AddSourceLine(DIE *Die, CompileUnitDesc *File, unsigned Line) { +void DwarfWriter::AddSourceLine(DIE *Die, CompileUnitDesc *File, unsigned Line){ if (File && Line) { CompileUnit *FileUnit = FindCompileUnit(File); unsigned FileID = FileUnit->getID(); @@ -1598,7 +1598,7 @@ void DwarfWriter::ConstructScope(DebugScope *ParentScope, // Define the Scope debug information entry. DebugScope *Scope = Scopes[j]; // FIXME - Ignore inlined functions for the time being. - if (Scope->getParent()) continue; + if (!Scope->getParent()) continue; DIE *ScopeDie = new DIE(DW_TAG_lexical_block); @@ -2081,6 +2081,7 @@ void DwarfWriter::EmitInitialDebugFrame() { // Start the dwarf frame section. Asm->SwitchToDataSection(DwarfFrameSection, 0); + EmitLabel("frame_common", 0); EmitDifference("frame_common_end", 0, "frame_common_begin", 0); EOL("Length of Common Information Entry"); @@ -2116,7 +2117,8 @@ void DwarfWriter::EmitFunctionDebugFrame() { EmitLabel("frame_begin", SubprogramCount); - EmitReference("section_frame", 0); EOL("FDE CIE offset"); + EmitDifference("frame_common", 0, "section_frame", 0); + EOL("FDE CIE offset"); EmitReference("func_begin", SubprogramCount); EOL("FDE initial location"); EmitDifference("func_end", SubprogramCount, -- 2.11.0