llvm/lld/test/ELF/eh-frame-multiple-cie.s

# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o
# RUN: ld.lld --eh-frame-hdr -shared %t.o -o %t.so
# RUN: llvm-dwarfdump --eh-frame %t.so | FileCheck %s

# CHECK:      00000000 00000014 00000000 CIE
# CHECK:        Augmentation:
# CHECK-SAME:                "zR"

# CHECK:      00000018 00000010 0000001c FDE cie=00000000 {{.*}}

# CHECK:      0000002c 00000018 00000000 CIE
# CHECK:        Augmentation:
# CHECK-SAME:                "zPR"
# CHECK:        Personality Address:

# CHECK:      00000048 00000010 00000020 FDE cie=0000002c {{.*}}

# CHECK:      0000005c 00000018 00000000 CIE
# CHECK:        Augmentation:
# CHECK-SAME:                "zPR"
# CHECK:        Personality Address:

# CHECK:      00000078 00000014 00000020 FDE cie=0000005c {{.*}}

foo0:
.cfi_startproc
.cfi_personality 0x9b, personality0
  ret
.cfi_endproc

## This CIE cannot be merged into the previous one because the Personality is different.
foo1:
.cfi_startproc
.cfi_personality 0x9b, personality1
  ret
.cfi_endproc

bar:
.cfi_startproc
  ret
.cfi_endproc

.globl personality0, personality1
.hidden personality0, personality1
personality0:
  ret

personality1:
  ret