File tree Expand file tree Collapse file tree 2 files changed +9
-6
lines changed Expand file tree Collapse file tree 2 files changed +9
-6
lines changed Original file line number Diff line number Diff line change @@ -425,8 +425,12 @@ to Miri failing to detect cases of undefined behavior in a program.
425
425
value from a load. This can help diagnose problems that disappear under
426
426
` -Zmiri-disable-weak-memory-emulation` .
427
427
* `-Zmiri-tree-borrows` replaces [Stacked Borrows] with the [Tree Borrows] rules.
428
- The soundness rules are already experimental without this flag, but even more
429
- so with this flag.
428
+ Tree Borrows is even more experimental than Stacked Borrows. While Tree Borrows
429
+ is still sound in the sense of catching all aliasing violations that current versions
430
+ of the compiler might exploit, it is likely that the eventual final aliasing model
431
+ of Rust will be stricter than Tree Borrows. In other words, if you use Tree Borrows,
432
+ even if your code is accepted today, it might be declared UB in the future.
433
+ This is much less likely with Stacked Borrows.
430
434
* `-Zmiri-force-page-size=<num>` overrides the default page size for an architecture, in multiples of 1k.
431
435
` 4` is default for most targets. This value should always be a power of 2 and nonzero.
432
436
* `-Zmiri-unique-is-unique` performs additional aliasing checks for `core::ptr::Unique` to ensure
Original file line number Diff line number Diff line change @@ -98,10 +98,9 @@ impl rustc_driver::Callbacks for MiriCompilerCalls {
98
98
}
99
99
100
100
if tcx. sess . opts . optimize != OptLevel :: No {
101
- tcx. dcx ( ) . warn ( "Miri does not support optimizations. If you have enabled optimizations \
102
- by selecting a Cargo profile (such as --release) which changes other profile settings \
103
- such as whether debug assertions and overflow checks are enabled, those settings are \
104
- still applied.") ;
101
+ tcx. dcx ( ) . warn ( "Miri does not support optimizations: the opt-level is ignored. The only effect \
102
+ of selecting a Cargo profile that enables optimizations (such as --release) is to apply \
103
+ its remaining settings, such as whether debug assertions and overflow checks are enabled.") ;
105
104
}
106
105
if tcx. sess . mir_opt_level ( ) > 0 {
107
106
tcx. dcx ( ) . warn ( "You have explicitly enabled MIR optimizations, overriding Miri's default \
You can’t perform that action at this time.
0 commit comments