[llvm-commits] [llvm] r131129 - in /llvm/trunk: lib/MC/MCDwarf.cpp test/MC/ELF/cfi-sections.s
Rafael Espindola
rafael.espindola at gmail.com
Tue May 10 08:20:24 PDT 2011
Author: rafael
Date: Tue May 10 10:20:23 2011
New Revision: 131129
URL: http://llvm.org/viewvc/llvm-project?rev=131129&view=rev
Log:
In a debug_frame the cfi offset is to the start of the debug_frame section!
Modified:
llvm/trunk/lib/MC/MCDwarf.cpp
llvm/trunk/test/MC/ELF/cfi-sections.s
Modified: llvm/trunk/lib/MC/MCDwarf.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCDwarf.cpp?rev=131129&r1=131128&r2=131129&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCDwarf.cpp (original)
+++ llvm/trunk/lib/MC/MCDwarf.cpp Tue May 10 10:20:23 2011
@@ -752,9 +752,13 @@
streamer.EmitLabel(fdeStart);
// CIE Pointer
- const MCExpr *offset = MakeStartMinusEndExpr(streamer, cieStart, *fdeStart,
- 0);
- streamer.EmitAbsValue(offset, 4);
+ if (IsEH) {
+ const MCExpr *offset = MakeStartMinusEndExpr(streamer, cieStart, *fdeStart,
+ 0);
+ streamer.EmitAbsValue(offset, 4);
+ } else {
+ streamer.EmitSymbolValue(&cieStart, 4);
+ }
unsigned fdeEncoding = asmInfo.getFDEEncoding(UsingCFI);
unsigned size = getSizeForEncoding(streamer, fdeEncoding);
Modified: llvm/trunk/test/MC/ELF/cfi-sections.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/cfi-sections.s?rev=131129&r1=131128&r2=131129&view=diff
==============================================================================
--- llvm/trunk/test/MC/ELF/cfi-sections.s (original)
+++ llvm/trunk/test/MC/ELF/cfi-sections.s Tue May 10 10:20:23 2011
@@ -1,10 +1,6 @@
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck -check-prefix=ELF_64 %s
// RUN: llvm-mc -filetype=obj -triple i686-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck -check-prefix=ELF_32 %s
-
-// The only difference in gas' output in this test is that we don't produce
-// the relocations to .debug_frame (we know their values).
-
.cfi_sections .debug_frame
f1:
@@ -27,7 +23,7 @@
// ELF_64-NEXT: ('sh_info', 0x00000000)
// ELF_64-NEXT: ('sh_addralign', 0x00000008)
// ELF_64-NEXT: ('sh_entsize', 0x00000000)
-// ELF_64-NEXT: ('_section_data', '14000000 ffffffff 01000178 100c0708 90010000 00000000 14000000 1c000000 00000000 00000000 01000000 00000000 14000000 34000000 00000000 00000000 01000000 00000000')
+// ELF_64-NEXT: ('_section_data', '14000000 ffffffff 01000178 100c0708 90010000 00000000 14000000 00000000 00000000 00000000 01000000 00000000 14000000 00000000 00000000 00000000 01000000 00000000')
// ELF_32: (('sh_name', 0x00000010) # '.debug_frame'
// ELF_32-NEXT: ('sh_type', 0x00000001)
@@ -39,4 +35,4 @@
// ELF_32-NEXT: ('sh_info', 0x00000000)
// ELF_32-NEXT: ('sh_addralign', 0x00000004)
// ELF_32-NEXT: ('sh_entsize', 0x00000000)
-// ELF_32-NEXT: ('_section_data', '10000000 ffffffff 0100017c 080c0404 88010000 0c000000 18000000 00000000 01000000 0c000000 28000000 01000000 01000000')
+// ELF_32-NEXT: ('_section_data', '10000000 ffffffff 0100017c 080c0404 88010000 0c000000 00000000 00000000 01000000 0c000000 00000000 01000000 01000000')
More information about the llvm-commits
mailing list