# REQUIRES: x86

# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
# RUN: echo "VERSION_1.0 { global: foo*; local: *; };" > %t.script
# RUN: ld.lld --version-script %t.script -shared %t.o -o %t.so
# RUN: llvm-readobj -dyn-symbols %t.so | FileCheck %s

# CHECK: DynamicSymbols [
# CHECK-NEXT:   Symbol {
# CHECK-NEXT:     Name: @
# CHECK-NEXT:     Value: 0x0
# CHECK-NEXT:     Size: 0
# CHECK-NEXT:     Binding: Local
# CHECK-NEXT:     Type: None
# CHECK-NEXT:     Other: 0
# CHECK-NEXT:     Section: Undefined
# CHECK-NEXT:   }
# CHECK-NEXT:   Symbol {
# CHECK-NEXT:     Name: foo1@@VERSION_1.0
# CHECK-NEXT:     Value: 0x1000
# CHECK-NEXT:     Size: 0
# CHECK-NEXT:     Binding: Global
# CHECK-NEXT:     Type: None
# CHECK-NEXT:     Other: 0
# CHECK-NEXT:     Section: .text
# CHECK-NEXT:   }
# CHECK-NEXT:   Symbol {
# CHECK-NEXT:     Name: foo2@@VERSION_1.0
# CHECK-NEXT:     Value: 0x1001
# CHECK-NEXT:     Size: 0
# CHECK-NEXT:     Binding: Global
# CHECK-NEXT:     Type: None
# CHECK-NEXT:     Other: 0
# CHECK-NEXT:     Section: .text
# CHECK-NEXT:   }
# CHECK-NEXT:   Symbol {
# CHECK-NEXT:     Name: foo3@@VERSION_1.0
# CHECK-NEXT:     Value: 0x1007
# CHECK-NEXT:     Size: 0
# CHECK-NEXT:     Binding: Global
# CHECK-NEXT:     Type: None
# CHECK-NEXT:     Other: 0
# CHECK-NEXT:     Section: .text
# CHECK-NEXT:   }
# CHECK-NEXT: ]

# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
# RUN: echo "VERSION_1.0 { global: foo2; local: *; };" > %t2.script
# RUN: echo "VERSION_2.0 { global: foo*; };" >> %t2.script
# RUN: ld.lld --version-script %t2.script -shared %t.o -o %t2.so
# RUN: llvm-readobj -dyn-symbols %t2.so | FileCheck --check-prefix=MIX %s

# MIX:      DynamicSymbols [
# MIX-NEXT:   Symbol {
# MIX-NEXT:     Name: @
# MIX-NEXT:     Value: 0x0
# MIX-NEXT:     Size: 0
# MIX-NEXT:     Binding: Local
# MIX-NEXT:     Type: None
# MIX-NEXT:     Other: 0
# MIX-NEXT:     Section: Undefined
# MIX-NEXT:   }
# MIX-NEXT:   Symbol {
# MIX-NEXT:     Name: foo1@@VERSION_2.0
# MIX-NEXT:     Value: 0x1000
# MIX-NEXT:     Size: 0
# MIX-NEXT:     Binding: Global
# MIX-NEXT:     Type: None
# MIX-NEXT:     Other: 0
# MIX-NEXT:     Section: .text
# MIX-NEXT:   }
# MIX-NEXT:   Symbol {
# MIX-NEXT:     Name: foo2@@VERSION_1.0
# MIX-NEXT:     Value: 0x1001
# MIX-NEXT:     Size: 0
# MIX-NEXT:     Binding: Global
# MIX-NEXT:     Type: None
# MIX-NEXT:     Other: 0
# MIX-NEXT:     Section: .text
# MIX-NEXT:   }
# MIX-NEXT:   Symbol {
# MIX-NEXT:     Name: foo3@@VERSION_2.0
# MIX-NEXT:     Value: 0x1007
# MIX-NEXT:     Size: 0
# MIX-NEXT:     Binding: Global
# MIX-NEXT:     Type: None
# MIX-NEXT:     Other: 0
# MIX-NEXT:     Section: .text
# MIX-NEXT:   }
# MIX-NEXT: ]

.globl foo1
foo1:
  ret

.globl foo2
foo2:
  call foo1@PLT
  ret

.globl foo3
foo3:
  call foo2@PLT
  ret

.globl _start
_start:
  ret
