Mention possible future rejections

Co-authored-by: Josh Triplett <josh@joshtriplett.org>
This commit is contained in:
Smittyvb 2021-11-04 11:31:03 -04:00 committed by GitHub
parent fdb6bdacfa
commit 773cc4f52b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -886,6 +886,6 @@ The compiler performs some additional checks on options:
- The set of memory locations that you may access is the intersection of those allowed by the `asm!` blocks you entered and exited.
- You cannot assume that an `asm!` block will appear exactly once in the output binary. The compiler is allowed to instantiate multiple copies of the `asm!` block, for example when the function containing it is inlined in multiple places.
- On x86, inline assembly must not end with an instruction prefix (such as `LOCK`) that would apply to instructions generated by the compiler.
- The compiler is currently unable to detect this due to the way inline assembly is compiled.
- The compiler is currently unable to detect this due to the way inline assembly is compiled, but may catch and reject this in the future.
> **Note**: As a general rule, the flags covered by `preserves_flags` are those which are *not* preserved when performing a function call.