| # RUN: llvm-mc -triple=x86_64 %s | FileCheck %s --check-prefix=ASM |
| # RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t |
| # RUN: llvm-readelf -s %t | FileCheck %s |
| |
| # ASM: .symver nondef, nondef@v1, remove |
| # ASM-NEXT: nondef: |
| # ASM: .symver def0, def0@@v2, remove |
| # ASM-NEXT: .symver def1, def1@@@v2{{$}} |
| # ASM-NEXT: def0: |
| # ASM-NEXT: def1: |
| # ASM: .symver def2, def2@v1, remove |
| # ASM-NEXT: .symver def2, def2@@v2{{$}} |
| # ASM-NEXT: def2: |
| |
| # CHECK: 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [[#]] nondef@v1 |
| # CHECK-NEXT: 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [[#]] def0@@v2 |
| # CHECK-NEXT: 3: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [[#]] def1@@v2 |
| # CHECK-NEXT: 4: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [[#]] def2@v1 |
| # CHECK-NEXT: 5: 0000000000000000 0 NOTYPE GLOBAL DEFAULT [[#]] def2@@v2 |
| # CHECK-NOT: {{.}} |
| |
| .globl nondef |
| .symver nondef, nondef@v1, remove |
| nondef: |
| |
| .globl def0, def1, def2 |
| .symver def0, def0@@v2, remove |
| .symver def1, def1@@@v2, remove |
| def0: |
| def1: |
| |
| ## Giving multiple versions to the same original symbol is not useful. |
| ## This test just documents the behavior. |
| .symver def2, def2@v1, remove |
| .symver def2, def2@@v2 |
| def2: |