@@ -212,15 +212,23 @@ with coverage tools other than those built and shipped with the compiler.
212
212
## jump-tables
213
213
214
214
This option is used to allow or prevent the LLVM codegen backend from creating
215
- jump tables when lowering switches.
215
+ jump tables when lowering switches from Rust code .
216
216
217
217
* ` y ` , ` yes ` , ` on ` , ` true ` or no value: allow jump tables (the default).
218
218
* ` n ` , ` no ` , ` off ` or ` false ` : disable jump tables.
219
219
220
+ To prevent jump tables being created from Rust code, a target must ensure
221
+ all crates are compiled with jump tables disabled.
222
+
223
+ Note, in many cases the rust toolchain is distributed with precompiled
224
+ crates, such as the core and std crates, which could possibly include
225
+ jump tables. Furthermore, this option does not guarantee a target will
226
+ be free of jump tables. They could arise from external dependencies,
227
+ inline asm, or other complicated interactions when using crates which
228
+ are compiled with jump table support.
229
+
220
230
Disabling jump tables can be used to help provide protection against
221
- jump-oriented-programming (JOP) attacks. However, this option makes
222
- no guarantee any precompiled or external dependencies are compiled
223
- with or without jump tables.
231
+ jump-oriented-programming (JOP) attacks.
224
232
225
233
## link-arg
226
234
0 commit comments