xref: /llvm-project/clang/test/Driver/coverage-ld.c (revision 1693009679313282afbed38778dd3fad62641e1b)
1 // Test coverage ld flags.
2 //
3 // RUN: %clang -### %s 2>&1 \
4 // RUN:     --target=i386-unknown-linux -fprofile-arcs \
5 // RUN:     -resource-dir=%S/Inputs/resource_dir \
6 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
7 // RUN:   | FileCheck --check-prefix=CHECK-LINUX-I386 %s
8 //
9 // RUN: %clang -### %s 2>&1 \
10 // RUN:     --target=i386-unknown-linux --coverage \
11 // RUN:     -resource-dir=%S/Inputs/resource_dir \
12 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
13 // RUN:   | FileCheck --check-prefix=CHECK-LINUX-I386 %s
14 //
15 // CHECK-LINUX-I386-NOT: "-u__llvm_profile_runtime"
16 // CHECK-LINUX-I386: /Inputs/resource_dir{{/|\\\\}}lib{{.*}}i386-unknown-linux{{.*}}libclang_rt.profile.a"
17 // CHECK-LINUX-I386-NOT: "-u__llvm_profile_runtime"
18 // CHECK-LINUX-I386: "-lc"
19 //
20 // RUN: %clang -### %s 2>&1 \
21 // RUN:     --target=x86_64-unknown-linux --coverage -fuse-ld=ld \
22 // RUN:     -resource-dir=%S/Inputs/resource_dir \
23 // RUN:     --sysroot=%S/Inputs/basic_linux_tree \
24 // RUN:   | FileCheck --check-prefix=CHECK-LINUX-X86-64 %s
25 //
26 // CHECK-LINUX-X86-64: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
27 // CHECK-LINUX-X86-64: "{{.*}}/Inputs/resource_dir{{/|\\\\}}lib{{.*}}linux{{.*}}libclang_rt.profile.a" {{.*}} "-lc"
28 //
29 // RUN: %clang -### %s 2>&1 \
30 // RUN:     --target=x86_64-unknown-freebsd --coverage -fuse-ld=ld \
31 // RUN:     -resource-dir=%S/Inputs/resource_dir \
32 // RUN:     --sysroot=%S/Inputs/basic_freebsd64_tree \
33 // RUN:   | FileCheck --check-prefix=CHECK-FREEBSD-X86-64 %s
34 //
35 // CHECK-FREEBSD-X86-64: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
36 // CHECK-FREEBSD-X86-64: "{{.*}}/Inputs/resource_dir{{/|\\\\}}lib{{/|\\\\}}x86_64-unknown-freebsd{{/|\\\\}}libclang_rt.profile.a"
37 //
38 // RUN: %clang -### %s 2>&1 \
39 // RUN:     --target=x86_64-unknown-netbsd --coverage -fuse-ld=ld \
40 // RUN:     -resource-dir=%S/Inputs/resource_dir \
41 // RUN:     --sysroot=%S/Inputs/basic_netbsd_tree \
42 // RUN:   | FileCheck --check-prefix=CHECK-NETBSD-X86-64 %s
43 
44 // CHECK-NETBSD-X86-64: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
45 // CHECK-NETBSD-X86-64: "{{.*}}/Inputs/resource_dir{{/|\\\\}}lib{{/|\\\\}}x86_64-unknown-netbsd{{/|\\\\}}libclang_rt.profile.a"
46 
47 // RUN: %clang -### %s 2>&1 \
48 // RUN:     --target=x86_64-unknown-openbsd --coverage -fuse-ld=ld \
49 // RUN:     -resource-dir=%S/Inputs/resource_dir \
50 // RUN:     --sysroot=%S/Inputs/basic_openbsd_tree \
51 // RUN:   | FileCheck --check-prefix=CHECK-OPENBSD-X86-64 %s
52 
53 // CHECK-OPENBSD-X86-64: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
54 // CHECK-OPENBSD-X86-64: "{{.*}}/Inputs/resource_dir{{/|\\\\}}lib{{/|\\\\}}x86_64-unknown-openbsd{{/|\\\\}}libclang_rt.profile.a"
55 
56 // RUN: %clang -### %s 2>&1 \
57 // RUN:     --target=arm-linux-androideabi --coverage -fuse-ld=ld \
58 // RUN:     -resource-dir=%S/Inputs/resource_dir \
59 // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
60 // RUN:   | FileCheck --check-prefix=CHECK-ANDROID-ARM %s
61 //
62 // CHECK-ANDROID-ARM: "{{(.*[^.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}"
63 // CHECK-ANDROID-ARM: "{{.*}}/Inputs/resource_dir{{/|\\\\}}lib{{/|\\\\}}arm-unknown-linux-android{{/|\\\\}}libclang_rt.profile.a"
64