llvm/llvm/test/tools/dsymutil/X86/op-convert.test

# RUN: dsymutil -f -o %t --verify -oso-prepend-path=%p/../Inputs -y %s
# RUN: llvm-dwarfdump %t | FileCheck %s

# RUN: dsymutil --linker parallel -f -o %t --verify -oso-prepend-path=%p/../Inputs -y %s
# RUN: llvm-dwarfdump %t | FileCheck %s

---
triple:          'x86_64-apple-darwin'
objects:
  - filename: op-convert.macho.x86_64
    symbols:
      - { sym: _foo, objAddr: 0x0, binAddr: 0x1000, size: 0x4 }
...

CHECK: DW_TAG_compile_unit
CHECK: DW_AT_name        ("dbg.c")

CHECK:0x[[ADDR1:[0-9a-f]+]]:      DW_TAG_base_type
CHECK-NEXT:     DW_AT_name	("DW_ATE_signed_8")
CHECK-NEXT:     DW_AT_encoding	(DW_ATE_signed)
CHECK-NEXT:     DW_AT_byte_size	(0x01)

CHECK:0x[[ADDR2:[0-9a-f]+]]:   DW_TAG_base_type
CHECK-NEXT:     DW_AT_name	("DW_ATE_signed_32")
CHECK-NEXT:     DW_AT_encoding	(DW_ATE_signed)
CHECK-NEXT:     DW_AT_byte_size	(0x04)

CHECK:     DW_TAG_variable
CHECK-NEXT:     DW_AT_location	(
CHECK-NEXT:     [0x0000000000001000,  0x0000000000001002): DW_OP_breg5 RDI+0, DW_OP_constu 0xffffffff, DW_OP_and, DW_OP_convert (0x[[ADDR1]]) "DW_ATE_signed_8", DW_OP_convert (0x[[ADDR2]]) "DW_ATE_signed_32", DW_OP_stack_value
CHECK-NEXT:     [0x0000000000001002,  0x0000000000001003): DW_OP_breg0 RAX+0, DW_OP_constu 0xffffffff, DW_OP_and, DW_OP_convert (0x[[ADDR1]]) "DW_ATE_signed_8", DW_OP_convert (0x[[ADDR2]]) "DW_ATE_signed_32", DW_OP_stack_value)
CHECK-NEXT:     DW_AT_name	("y")

CHECK:     DW_TAG_variable
CHECK-NEXT:     DW_AT_location	(DW_OP_constu 0x33, DW_OP_convert 0x0, DW_OP_stack_value)
CHECK-NEXT:     DW_AT_name	("d")

CHECK:     DW_TAG_variable
CHECK-NEXT:     DW_AT_location	(DW_OP_constu 0x2a, DW_OP_convert (0x[[ADDR2]]) "DW_ATE_signed_32", DW_OP_stack_value)
CHECK-NEXT:     DW_AT_name	("c")