1# REQUIRES: x86 2 3# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o 4# RUN: echo "FOO { global: extern \"C++\" { ab[c]*; }; };" > %t.script 5# RUN: ld.lld --version-script %t.script -shared %t.o -o %t.so 6# RUN: llvm-readobj -V %t.so | FileCheck %s --check-prefix=ABC 7# ABC: Name: _Z3abbi 8# ABC: Name: _Z3abci@@FOO 9 10# RUN: echo "FOO { global: extern \"C++\" { ab[b]*; }; };" > %t1.script 11# RUN: ld.lld --version-script %t1.script -shared %t.o -o %t1.so 12# RUN: llvm-readobj -V %t1.so | FileCheck %s --check-prefix=ABB 13# ABB: Name: _Z3abbi@@FOO 14# ABB: Name: _Z3abci 15 16# RUN: echo "FOO { global: extern \"C++\" { ab[a-b]*; }; };" > %t2.script 17# RUN: ld.lld --version-script %t2.script -shared %t.o -o %t2.so 18# RUN: llvm-readobj -V %t2.so | FileCheck %s --check-prefix=ABB 19 20# RUN: echo "FOO { global: extern \"C++\" { ab[a-c]*; }; };" > %t3.script 21# RUN: ld.lld --version-script %t3.script -shared %t.o -o %t3.so 22# RUN: llvm-readobj -V %t3.so | FileCheck %s --check-prefix=ABBABC 23# ABBABC: Name: _Z3abbi@@FOO 24# ABBABC: Name: _Z3abci@@FOO 25 26# RUN: echo "FOO { global: extern \"C++\" { ab[a-bc-d]*; }; };" > %t4.script 27# RUN: ld.lld --version-script %t4.script -shared %t.o -o %t4.so 28# RUN: llvm-readobj -V %t4.so | FileCheck %s --check-prefix=ABBABC 29 30# RUN: echo "FOO { global: extern \"C++\" { ab[a-bd-e]*; }; };" > %t5.script 31# RUN: ld.lld --version-script %t5.script -shared %t.o -o %t5.so 32# RUN: llvm-readobj -V %t5.so | FileCheck %s --check-prefix=ABB 33 34# RUN: echo "FOO { global: extern \"C++\" { ab[^a-c]*; }; };" > %t6.script 35# RUN: ld.lld --version-script %t6.script -shared %t.o -o %t6.so 36# RUN: llvm-readobj -V %t6.so | FileCheck %s --check-prefix=NO 37# NO: Name: _Z3abbi 38# NO: Name: _Z3abci 39 40# RUN: echo "FOO { global: extern \"C++\" { ab[^c-z]*; }; };" > %t7.script 41# RUN: ld.lld --version-script %t7.script -shared %t.o -o %t7.so 42# RUN: llvm-readobj -V %t7.so | FileCheck %s --check-prefix=ABB 43 44# RUN: echo "FOO { global: extern \"C++\" { a[x-za-b][a-c]*; }; };" > %t8.script 45# RUN: ld.lld --version-script %t8.script -shared %t.o -o %t8.so 46# RUN: llvm-readobj -V %t8.so | FileCheck %s --check-prefix=ABBABC 47 48# RUN: echo "FOO { global: extern \"C++\" { a[; }; };" > %t9.script 49# RUN: not ld.lld --version-script %t9.script -shared %t.o -o /dev/null 2>&1 \ 50# RUN: | FileCheck %s --check-prefix=ERROR 51# ERROR: invalid glob pattern: a[ 52 53.text 54.globl _Z3abci 55.type _Z3abci,@function 56_Z3abci: 57retq 58 59.globl _Z3abbi 60.type _Z3abbi,@function 61_Z3abbi: 62retq 63