[llvm] r203256 - DebugInfo: Restrict DW_AT_high_pc encoding as data4 offset to DWARF 4 as per spec

David Blaikie dblaikie at gmail.com
Fri Mar 7 10:04:24 PST 2014


Author: dblaikie
Date: Fri Mar  7 12:04:24 2014
New Revision: 203256

URL: http://llvm.org/viewvc/llvm-project?rev=203256&view=rev
Log:
DebugInfo: Restrict DW_AT_high_pc encoding as data4 offset to DWARF 4 as per spec

Code review feedback to r203187 from Oliver Stannard. Thanks!

Modified:
    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
    llvm/trunk/test/DebugInfo/AArch64/dwarfdump.ll

Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=203256&r1=203255&r2=203256&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Fri Mar  7 12:04:24 2014
@@ -413,7 +413,7 @@ DIE *DwarfDebug::updateSubprogramScopeDI
   }
 
   SPCU->addLabelAddress(SPDie, dwarf::DW_AT_low_pc, FunctionBeginSym);
-  if (Triple(Asm->getTargetTriple()).isOSDarwin())
+  if (DwarfVersion < 4 || Triple(Asm->getTargetTriple()).isOSDarwin())
     SPCU->addLabelAddress(SPDie, dwarf::DW_AT_high_pc, FunctionEndSym);
   else
     SPCU->addLabelDelta(SPDie, dwarf::DW_AT_high_pc, FunctionEndSym,

Modified: llvm/trunk/test/DebugInfo/AArch64/dwarfdump.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/AArch64/dwarfdump.ll?rev=203256&r1=203255&r2=203256&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/AArch64/dwarfdump.ll (original)
+++ llvm/trunk/test/DebugInfo/AArch64/dwarfdump.ll Fri Mar  7 12:04:24 2014
@@ -1,4 +1,7 @@
-; RUN: llc -mtriple=aarch64-non-linux-gnu < %s -filetype=obj | llvm-dwarfdump - | FileCheck %s
+; RUN: llc -mtriple=aarch64-non-linux-gnu -dwarf-version=4 < %s -filetype=obj \
+; RUN:    | llvm-dwarfdump - | FileCheck -check-prefix=CHECK -check-prefix=CHECK-4 %s
+; RUN: llc -mtriple=aarch64-non-linux-gnu -dwarf-version=3 < %s -filetype=obj \
+; RUN:    | llvm-dwarfdump - | FileCheck -check-prefix=CHECK -check-prefix=CHECK-3 %s
 
 ; We're mostly checking that relocations are applied correctly
 ; here. Currently R_AARCH64_ABS32 is used for references to debug data
@@ -12,7 +15,8 @@
 ; A couple of ABS64s similarly:
 
 ; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000)
-; CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000008)
+; CHECK-4: DW_AT_high_pc [DW_FORM_data4] (0x00000008)
+; CHECK-3: DW_AT_high_pc [DW_FORM_addr] (0x0000000000000008)
 
 define i32 @main() nounwind {
   ret i32 0, !dbg !8





More information about the llvm-commits mailing list