|
56 | 56 |
|
57 | 57 | // RUN: %clang -### -c --target=aarch64-linux -mabi=pauthtest %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI1 |
58 | 58 | // RUN: %clang -### -c --target=aarch64-linux-pauthtest %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI1 |
59 | | -// RUN: %clang -### -c --target=aarch64-linux -mabi=pauthtest -fptrauth-abi-version=0 %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI1 |
60 | | -// RUN: %clang -### -c --target=aarch64-linux-pauthtest -fptrauth-abi-version=0 %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI1 |
61 | 59 | // PAUTHABI1: "-cc1"{{.*}} "-triple" "aarch64-unknown-linux-pauthtest" |
62 | | -// PAUTHABI1-SAME: "-fptrauth-abi-version=0" |
63 | | -// PAUTHABI1-SAME: "-fptrauth-intrinsics" "-fptrauth-calls" "-fptrauth-returns" "-fptrauth-auth-traps" "-fptrauth-vtable-pointer-address-discrimination" "-fptrauth-vtable-pointer-type-discrimination" "-fptrauth-type-info-vtable-pointer-discrimination" "-fptrauth-indirect-gotos" "-fptrauth-init-fini" "-fptrauth-init-fini-address-discrimination" "-fptrauth-elf-got" "-faarch64-jump-table-hardening" |
| 60 | +// PAUTHABI1-SAME: "-fptrauth-intrinsics" "-fptrauth-calls" "-fptrauth-returns" "-fptrauth-auth-traps" "-fptrauth-vtable-pointer-address-discrimination" "-fptrauth-vtable-pointer-type-discrimination" "-fptrauth-type-info-vtable-pointer-discrimination" "-fptrauth-indirect-gotos" "-fptrauth-init-fini" "-fptrauth-init-fini-address-discrimination" "-faarch64-jump-table-hardening" |
64 | 61 | // PAUTHABI1-SAME: "-target-abi" "pauthtest" |
65 | 62 | // PAUTHABI1-NOT: "-fptrauth-function-pointer-type-discrimination" |
66 | 63 |
|
67 | | -// RUN: %clang -### -c --target=aarch64-linux -mabi=pauthtest -fptrauth-abi-version=1 %s 2>&1 | FileCheck %s --check-prefix=PAUTHTESTV1 |
68 | | -// RUN: %clang -### -c --target=aarch64-linux-pauthtest -fptrauth-abi-version=1 %s 2>&1 | FileCheck %s --check-prefix=PAUTHTESTV1 |
69 | | -// PAUTHTESTV1: "-cc1"{{.*}} "-triple" "aarch64-unknown-linux-pauthtest" |
70 | | -// PAUTHTESTV1-SAME: "-fptrauth-abi-version=1" |
71 | | -// PAUTHTESTV1-SAME: "-fptrauth-intrinsics" "-fptrauth-calls" "-fptrauth-returns" "-fptrauth-auth-traps" "-fptrauth-vtable-pointer-address-discrimination" "-fptrauth-vtable-pointer-type-discrimination" "-fptrauth-type-info-vtable-pointer-discrimination" "-fptrauth-indirect-gotos" "-fptrauth-init-fini" "-fptrauth-init-fini-address-discrimination" "-fptrauth-elf-got" "-faarch64-jump-table-hardening" |
72 | | -// PAUTHTESTV1-SAME: "-target-abi" "pauthtest" |
73 | | -// PAUTHTESTV1-NOT: "-fptrauth-function-pointer-type-discrimination" |
74 | | - |
75 | 64 | // RUN: %clang -### -c --target=aarch64-linux -mabi=pauthtest -fno-ptrauth-intrinsics \ |
76 | 65 | // RUN: -fno-ptrauth-calls -fno-ptrauth-returns -fno-ptrauth-auth-traps \ |
77 | 66 | // RUN: -fno-ptrauth-vtable-pointer-address-discrimination -fno-ptrauth-vtable-pointer-type-discrimination \ |
78 | 67 | // RUN: -fno-ptrauth-type-info-vtable-pointer-discrimination -fno-ptrauth-indirect-gotos \ |
79 | | -// RUN: -fno-ptrauth-init-fini -fno-ptrauth-init-fini-address-discrimination -fno-ptrauth-elf-got \ |
80 | | -// RUN: -fno-ptrauth-abi-version -fno-aarch64-jump-table-hardening %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI2 |
| 68 | +// RUN: -fno-ptrauth-init-fini -fno-ptrauth-init-fini-address-discrimination \ |
| 69 | +// RUN: -fno-aarch64-jump-table-hardening %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI2 |
81 | 70 | // RUN: %clang -### -c --target=aarch64-linux-pauthtest -fno-ptrauth-intrinsics \ |
82 | 71 | // RUN: -fno-ptrauth-calls -fno-ptrauth-returns -fno-ptrauth-auth-traps \ |
83 | 72 | // RUN: -fno-ptrauth-vtable-pointer-address-discrimination -fno-ptrauth-vtable-pointer-type-discrimination \ |
84 | 73 | // RUN: -fno-ptrauth-type-info-vtable-pointer-discrimination -fno-ptrauth-indirect-gotos \ |
85 | | -// RUN: -fno-ptrauth-init-fini -fno-ptrauth-init-fini-address-discrimination -fno-ptrauth-elf-got \ |
86 | | -// RUN: -fno-ptrauth-abi-version -fno-aarch64-jump-table-hardening %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI2 |
| 74 | +// RUN: -fno-ptrauth-init-fini -fno-ptrauth-init-fini-address-discrimination \ |
| 75 | +// RUN: -fno-aarch64-jump-table-hardening %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI2 |
87 | 76 |
|
88 | 77 | //// Non-linux OS: pauthtest ABI has no effect in terms of passing ptrauth cc1 flags. |
89 | 78 | //// An error about unsupported ABI will be emitted later in pipeline (see ERR3 below) |
|
105 | 94 | // RUN: not %clang -### -c --target=aarch64-linux -fptrauth-intrinsics -fptrauth-calls -fptrauth-returns -fptrauth-auth-traps \ |
106 | 95 | // RUN: -fptrauth-vtable-pointer-address-discrimination -fptrauth-vtable-pointer-type-discrimination \ |
107 | 96 | // RUN: -fptrauth-type-info-vtable-pointer-discrimination -fptrauth-indirect-gotos -fptrauth-init-fini \ |
108 | | -// RUN: -fptrauth-init-fini-address-discrimination -fptrauth-elf-got -fptrauth-abi-version=1 -fno-ptrauth-abi-version \ |
109 | | -// RUN: %s 2>&1 | FileCheck %s --check-prefix=ERR1 |
| 97 | +// RUN: -fptrauth-init-fini-address-discrimination -fptrauth-elf-got %s 2>&1 | FileCheck %s --check-prefix=ERR1 |
110 | 98 | // ERR1: error: unsupported option '-fptrauth-intrinsics' for target '{{.*}}' |
111 | 99 | // ERR1-NEXT: error: unsupported option '-fptrauth-calls' for target '{{.*}}' |
112 | 100 | // ERR1-NEXT: error: unsupported option '-fptrauth-returns' for target '{{.*}}' |
|
118 | 106 | // ERR1-NEXT: error: unsupported option '-fptrauth-init-fini' for target '{{.*}}' |
119 | 107 | // ERR1-NEXT: error: unsupported option '-fptrauth-init-fini-address-discrimination' for target '{{.*}}' |
120 | 108 | // ERR1-NEXT: error: unsupported option '-fptrauth-elf-got' for target '{{.*}}' |
121 | | -// ERR1-NEXT: error: unsupported option '-fptrauth-abi-version=' for target '{{.*}}' |
122 | | -// ERR1-NEXT: error: unsupported option '-fno-ptrauth-abi-version' for target '{{.*}}' |
123 | | - |
124 | | -// RUN: %clang -### -c --target=aarch64-linux -mabi=pauthtest -fptrauth-abi-version=2 %s 2>&1 | FileCheck %s --check-prefix=PAUTHTESTV2 |
125 | | -// RUN: %clang -### -c --target=aarch64-linux-pauthtest -fptrauth-abi-version=2 %s 2>&1 | FileCheck %s --check-prefix=PAUTHTESTV2 |
126 | | -// PAUTHTESTV2: "-cc1"{{.*}} "-triple" "aarch64-unknown-linux-pauthtest" |
127 | | -// PAUTHTESTV2-SAME: "-fptrauth-abi-version=2" |
128 | | -// PAUTHTESTV2-SAME: "-fptrauth-intrinsics" "-fptrauth-calls" "-fptrauth-returns" "-fptrauth-auth-traps" "-fptrauth-vtable-pointer-address-discrimination" "-fptrauth-vtable-pointer-type-discrimination" "-fptrauth-type-info-vtable-pointer-discrimination" "-fptrauth-indirect-gotos" "-fptrauth-init-fini" "-fptrauth-init-fini-address-discrimination" "-fptrauth-elf-got" "-faarch64-jump-table-hardening" "-fptrauth-function-pointer-type-discrimination" |
129 | | -// PAUTHTESTV2-SAME: "-target-abi" "pauthtest" |
130 | | - |
131 | | -// RUN: %clang -### -c --target=aarch64-linux -mabi=pauthtest -fptrauth-abi-version=1 -fno-ptrauth-abi-version %s 2>&1 | FileCheck %s --check-prefix=PAUTHTESTVNONE |
132 | | -// RUN: %clang -### -c --target=aarch64-linux-pauthtest -fptrauth-abi-version=1 -fno-ptrauth-abi-version %s 2>&1 | FileCheck %s --check-prefix=PAUTHTESTVNONE |
133 | | -// PAUTHTESTVNONE: "-cc1"{{.*}} "-triple" "aarch64-unknown-linux-pauthtest" |
134 | | -// PAUTHTESTVNONE-SAME: "-fptrauth-intrinsics" "-fptrauth-calls" "-fptrauth-returns" "-fptrauth-auth-traps" "-fptrauth-vtable-pointer-address-discrimination" "-fptrauth-vtable-pointer-type-discrimination" "-fptrauth-type-info-vtable-pointer-discrimination" "-fptrauth-indirect-gotos" "-fptrauth-init-fini" "-fptrauth-init-fini-address-discrimination" "-fptrauth-elf-got" "-faarch64-jump-table-hardening" |
135 | | -// PAUTHTESTVNONE-SAME: "-target-abi" "pauthtest" |
136 | | -// PAUTHTESTVNONE-NOT: "-fptrauth-abi-version |
137 | | - |
138 | | -//// A pauth-aware environment (e.g. pauthtest) must be chosen to manipulate ptrauth ABI versioning. |
139 | | -// RUN: not %clang -### -c --target=aarch64-linux -fptrauth-abi-version=1 -fno-ptrauth-abi-version %s 2>&1 | FileCheck %s --check-prefix=ERR0 |
140 | | -// ERR0: error: unsupported option '-fptrauth-abi-version=' for target '{{.*}}' |
141 | | -// ERR0-NEXT: error: unsupported option '-fno-ptrauth-abi-version' for target '{{.*}}' |
142 | 109 |
|
143 | 110 | //// Non-AArch64. |
144 | 111 | // RUN: not %clang -### -c --target=x86_64-linux -faarch64-jump-table-hardening %s 2>&1 | FileCheck %s --check-prefix=ERR2 |
|
197 | 164 | // RUN: FileCheck %s --check-prefix=ERR9 |
198 | 165 | // ERR9: error: unsupported option '-msign-return-address=non-leaf' for target 'aarch64-unknown-linux-pauthtest' |
199 | 166 |
|
200 | | -// RUN: not %clang -### -c --target=aarch64-linux -mabi=pauthtest -fptrauth-abi-version=3 %s 2>&1 | FileCheck %s --check-prefix=ERR10 |
201 | | -// RUN: not %clang -### -c --target=aarch64-linux-pauthtest -fptrauth-abi-version=3 %s 2>&1 | FileCheck %s --check-prefix=ERR10 |
202 | | -// ERR10: error: invalid value '3' in '-fptrauth-abi-version=3' |
203 | | - |
204 | | -// RUN: not %clang -### -c --target=aarch64-linux -mabi=pauthtest -fptrauth-abi-version=xxx %s 2>&1 | FileCheck %s --check-prefix=ERR11 |
205 | | -// RUN: not %clang -### -c --target=aarch64-linux-pauthtest -fptrauth-abi-version=xxx %s 2>&1 | FileCheck %s --check-prefix=ERR11 |
206 | | -// ERR11: error: invalid value 'xxx' in '-fptrauth-abi-version=xxx' |
207 | | - |
208 | | -// RUN: not %clang -### -c --target=aarch64-linux -mabi=pauthtest -fptrauth-abi-version=-1 %s 2>&1 | FileCheck %s --check-prefix=ERR12 |
209 | | -// RUN: not %clang -### -c --target=aarch64-linux-pauthtest -fptrauth-abi-version=-1 %s 2>&1 | FileCheck %s --check-prefix=ERR12 |
210 | | -// ERR12: error: invalid value '-1' in '-fptrauth-abi-version=-1' |
211 | | - |
212 | 167 | // RUN: %clang -### -c --target=aarch64-linux -mabi=pauthtest -msign-return-address=none %s |
213 | 168 | // RUN: %clang -### -c --target=aarch64-linux-pauthtest -msign-return-address=none %s |
214 | 169 | // RUN: %clang -### -c --target=aarch64-linux -mabi=pauthtest -mbranch-protection=bti %s |
|
0 commit comments