1# RUN: llvm-mc -triple=x86_64 %s | FileCheck %s --check-prefix=ASM 2# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t 3# RUN: llvm-readelf -s %t | FileCheck %s 4 5# ASM: .symver nondef, nondef@v1, remove 6# ASM-NEXT: nondef: 7# ASM: .symver def0, def0@@v2, remove 8# ASM-NEXT: .symver def1, def1@@@v2{{$}} 9# ASM-NEXT: def0: 10# ASM-NEXT: def1: 11# ASM: .symver def2, def2@v1, remove 12# ASM-NEXT: .symver def2, def2@@v2{{$}} 13# ASM-NEXT: def2: 14 15# CHECK: 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [[#]] nondef@v1 16# CHECK-NEXT: 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [[#]] def0@@v2 17# CHECK-NEXT: 3: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [[#]] def1@@v2 18# CHECK-NEXT: 4: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [[#]] def2@v1 19# CHECK-NEXT: 5: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [[#]] def2@@v2 20# CHECK-NOT: {{.}} 21 22.globl nondef 23.symver nondef, nondef@v1, remove 24nondef: 25 26.globl def0, def1, def2 27.symver def0, def0@@v2, remove 28.symver def1, def1@@@v2, remove 29def0: 30def1: 31 32## Giving multiple versions to the same original symbol is not useful. 33## This test just documents the behavior. 34.symver def2, def2@v1, remove 35.symver def2, def2@@v2 36def2: 37