blob: c71764f76b65377929ff5e9c31c6e92212444c58 [file] [edit]
# REQUIRES: system-linux
# RUN: rm -rf %t
# RUN: split-file %s %t
# RUN: %clang %cflags -gdwarf-5 -gdwarf64 -Wl,-q -Wl,-e,main \
# RUN: %t/main.c -o %t.exe
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --keep-aranges
# RUN: llvm-dwarfdump --debug-info --debug-aranges --debug-line %t.bolt | \
# RUN: FileCheck %s
# RUN: llvm-dwarfdump --verify %t.bolt
## BOLT must preserve DWARF64 .debug_info, .debug_aranges, and .debug_line
## contributions whose offsets use the DWARF64 offset size.
# CHECK-LABEL: .debug_info contents:
# CHECK: Compile Unit: length = 0x{{[0-9a-f]+}}, format = DWARF64, version = 0x0005
# CHECK: DW_TAG_compile_unit
# CHECK: DW_AT_ranges
# CHECK-SAME: rangelist =
# CHECK: DW_TAG_subprogram
# CHECK: DW_AT_name{{.*}}"helper"
# CHECK: DW_AT_type{{.*}}"int"
# CHECK: DW_TAG_subprogram
# CHECK: DW_AT_name{{.*}}"main"
# CHECK: DW_AT_type{{.*}}"int"
# CHECK: DW_TAG_base_type
# CHECK: DW_AT_name{{.*}}"int"
# CHECK-LABEL: .debug_aranges contents:
# CHECK: Address Range Header: length = 0x{{[0-9a-f]+}}, format = DWARF64, version = 0x0002, cu_offset = 0x0000000000000000, addr_size = 0x08, seg_size = 0x00
# CHECK: [0x{{[0-9a-f]+}}, 0x{{[0-9a-f]+}})
# CHECK: [0x{{[0-9a-f]+}}, 0x{{[0-9a-f]+}})
# CHECK-LABEL: .debug_line contents:
# CHECK: total_length:
# CHECK-NEXT: format: DWARF64
# CHECK: version: 5
#--- main.c
int helper(int x) {
return x + 1;
}
int main(void) {
return helper(41);
}