verify_debug_abbrev.s 2.15 KB
# RUN: llvm-mc %s -filetype obj -triple x86_64-unknown-linux-gnu -o - \
# RUN: | not llvm-dwarfdump -verify - \
# RUN: | FileCheck %s

# CHECK: Verifying .debug_abbrev...
# CHECK-NEXT: error: Abbreviation declaration contains multiple DW_AT_stmt_list attributes.
# CHECK-NEXT:[1] DW_TAG_compile_unit	DW_CHILDREN_no
# CHECK-NEXT:	DW_AT_stmt_list	DW_FORM_sec_offset
# CHECK-NEXT:	DW_AT_GNU_dwo_name	DW_FORM_strp
# CHECK-NEXT:	DW_AT_stmt_list	DW_FORM_strp{{[[:space:]]}}
# CHECK-NEXT: error: Abbreviation declaration contains multiple DW_AT_producer attributes.
# CHECK-NEXT:[1] DW_TAG_compile_unit	DW_CHILDREN_yes
# CHECK-NEXT:	DW_AT_GNU_dwo_name	DW_FORM_GNU_str_index
# CHECK-NEXT:	DW_AT_producer	DW_FORM_GNU_str_index
# CHECK-NEXT:	DW_AT_producer	DW_FORM_data2


  .section  .debug_abbrev,"",@progbits
  .byte  1                       # Abbreviation Code
  .byte  17                      # DW_TAG_compile_unit
  .byte  0                       # DW_CHILDREN_no
  .byte  16                      # DW_AT_stmt_list
  .byte  23                      # DW_FORM_sec_offset
  .ascii  "\260B"                # DW_AT_GNU_dwo_name
  .byte  14                      # DW_FORM_strp
  .byte  16                      # DW_AT_stmt_list -- Error: Abbreviation declaration contains multiple DW_AT_stmt_list attributes.
  .byte  14                      # DW_FORM_strp
  .byte  0                       # EOM(1)
  .byte  0                       # EOM(2)
  .byte  0                       # EOM(3)
  .section  .debug_abbrev.dwo,"",@progbits
  .byte  1                       # Abbreviation Code
  .byte  17                      # DW_TAG_compile_unit
  .byte  1                       # DW_CHILDREN_yes
  .ascii  "\260B"                # DW_AT_GNU_dwo_name
  .ascii  "\202>"                # DW_FORM_GNU_str_index
  .byte  37                      # DW_AT_producer
  .ascii  "\202>"                # DW_FORM_GNU_str_index
  .byte  37                      # DW_AT_producer -- Error: Abbreviation declaration contains multiple DW_AT_producer attributes.
  .byte  5                       # DW_FORM_data1
  .byte  0                       # EOM(1)
  .byte  0                       # EOM(2)
  .byte  0                       # EOM(3)