summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorJim Laskey <jlaskey@mac.com>2006-06-19 19:49:42 +0000
committerJim Laskey <jlaskey@mac.com>2006-06-19 19:49:42 +0000
commit2837e3204fdd31132caf5c317ea8084987ec55a5 (patch)
tree1d3282edeb4ef7741056a3ea7372f317f2e8ef81 /llvm/lib
parentcd58e9d8b917d6ac51a1fa694197ae3ff00ad4bd (diff)
downloadbcm5719-llvm-2837e3204fdd31132caf5c317ea8084987ec55a5.tar.gz
bcm5719-llvm-2837e3204fdd31132caf5c317ea8084987ec55a5.zip
References need to be section relative.
llvm-svn: 28861
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/CodeGen/DwarfWriter.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/DwarfWriter.cpp b/llvm/lib/CodeGen/DwarfWriter.cpp
index 61697c634d6..3ca968672c7 100644
--- a/llvm/lib/CodeGen/DwarfWriter.cpp
+++ b/llvm/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,
OpenPOWER on IntegriCloud