xref: /llvm-project/clang/test/Driver/tls-dialect.c (revision eb148aecb3603c2ba6ecbdaebd3b8a87f44349bc)
1*eb148aecSwanglei // RUN: %clang -### --target=loongarch64-linux -mtls-dialect=trad %s 2>&1 | FileCheck --check-prefix=NODESC %s
2*eb148aecSwanglei // RUN: %clang -### --target=loongarch64-linux %s 2>&1 | FileCheck --check-prefix=NODESC %s
336b4a9ccSFangrui Song // RUN: %clang -### --target=riscv64-freebsd -mtls-dialect=desc %s 2>&1 | FileCheck --check-prefix=DESC %s
436b4a9ccSFangrui Song // RUN: %clang -### --target=riscv64-linux -mtls-dialect=trad %s 2>&1 | FileCheck --check-prefix=NODESC %s
536b4a9ccSFangrui Song // RUN: %clang -### --target=riscv64-linux %s 2>&1 | FileCheck --check-prefix=NODESC %s
636b4a9ccSFangrui Song // RUN: %clang -### --target=x86_64-linux -mtls-dialect=gnu %s 2>&1 | FileCheck --check-prefix=NODESC %s
7f4676b6bSPhoebe Wang // RUN: %clang -### --target=x86_64-linux -mtls-dialect=gnu2 %s 2>&1 | FileCheck --check-prefix=DESC %s
836b4a9ccSFangrui Song 
9407f9c06SPaul Kirth /// Android supports TLSDESC by default on RISC-V
10407f9c06SPaul Kirth /// TLSDESC is not on by default in Linux, even on RISC-V, and is covered above
11407f9c06SPaul Kirth // RUN: %clang -### --target=riscv64-android %s 2>&1 | FileCheck --check-prefix=DESC %s
12407f9c06SPaul Kirth 
1336b4a9ccSFangrui Song /// LTO
14*eb148aecSwanglei // RUN: %clang -### --target=loongarch64-linux -flto -mtls-dialect=desc %s 2>&1 | FileCheck --check-prefix=LTO-DESC %s
15*eb148aecSwanglei // RUN: %clang -### --target=loongarch64-linux -flto %s 2>&1 | FileCheck --check-prefix=LTO-NODESC %s
1636b4a9ccSFangrui Song // RUN: %clang -### --target=riscv64-linux -flto -mtls-dialect=desc %s 2>&1 | FileCheck --check-prefix=LTO-DESC %s
1736b4a9ccSFangrui Song // RUN: %clang -### --target=riscv64-linux -flto %s 2>&1 | FileCheck --check-prefix=LTO-NODESC %s
1836b4a9ccSFangrui Song 
1936b4a9ccSFangrui Song /// Unsupported target
2036b4a9ccSFangrui Song /// GCC supports -mtls-dialect= for AArch64, but we just unsupport it for AArch64 as it is very rarely used.
2136b4a9ccSFangrui Song // RUN: not %clang --target=aarch64-linux -mtls-dialect=desc %s 2>&1 | FileCheck --check-prefix=UNSUPPORTED-TARGET %s
2236b4a9ccSFangrui Song // RUN: not %clang --target=x86_64-apple-macos -mtls-dialect=desc -flto %s 2>&1 | FileCheck -check-prefix=UNSUPPORTED-TARGET %s
2336b4a9ccSFangrui Song 
2436b4a9ccSFangrui Song /// Unsupported argument
25*eb148aecSwanglei // RUN: not %clang -### --target=loongarch64-linux -mtls-dialect=gnu2 %s 2>&1 | FileCheck --check-prefix=UNSUPPORTED-ARG %s
2636b4a9ccSFangrui Song // RUN: not %clang -### --target=riscv64-linux -mtls-dialect=gnu2 %s 2>&1 | FileCheck --check-prefix=UNSUPPORTED-ARG %s
2736b4a9ccSFangrui Song 
2836b4a9ccSFangrui Song // DESC:       "-cc1" {{.*}}"-enable-tlsdesc"
2936b4a9ccSFangrui Song // NODESC-NOT: "-enable-tlsdesc"
3036b4a9ccSFangrui Song // LTO-DESC:       "-plugin-opt=-enable-tlsdesc"
3136b4a9ccSFangrui Song // LTO-NODESC-NOT: "-plugin-opt=-enable-tlsdesc"
3236b4a9ccSFangrui Song 
3336b4a9ccSFangrui Song // UNSUPPORTED-TARGET: error: unsupported option '-mtls-dialect=' for target
3436b4a9ccSFangrui Song // UNSUPPORTED-ARG: error: unsupported argument 'gnu2' to option '-mtls-dialect=' for target
35