-
Notifications
You must be signed in to change notification settings - Fork 13.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stabilize asm_goto
feature gate
#133870
Stabilize asm_goto
feature gate
#133870
Conversation
@rustbot label: -T-compiler +T-lang +A-inline-assembly +F-asm Cc @rust-lang/wg-inline-asm |
r? compiler cc @Amanieu |
The code changes look fine for stabilizing this feature, so r=me in terms of code. But I am uncertain about the stabilization process. Is any additional T-lang approval needed before this merges? Has such approval already been obtained? |
@nnethercote this would need a FCP. |
r? lang (for T-lang FCP) |
Team member @traviscross has proposed to merge this. The next step is review by the rest of the tagged team members: No concerns currently listed. Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! cc @rust-lang/lang-advisors: FCP proposed for lang, please feel free to register concerns. |
@rfcbot reviewed |
All reactions
Sorry, something went wrong.
@rfcbot reviewed (Already checked my box, but rfcbot doesn't seem to register this.) |
All reactions
Sorry, something went wrong.
The final comment period, with a disposition to merge, as per the review above, is now complete. As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed. This will be merged soon. |
All reactions
Sorry, something went wrong.
Note that this is still pending acceptance of the Reference PR, and it should not be merged until the |
All reactions
Sorry, something went wrong.
☔ The latest upstream changes (presumably #135286) made this pull request unmergeable. Please resolve the merge conflicts. |
All reactions
Sorry, something went wrong.
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#133870 (Stabilize `asm_goto` feature gate) - rust-lang#137449 (Denote `ControlFlow` as `#[must_use]`) - rust-lang#137465 (mir_build: Avoid some useless work when visiting "primary" bindings) - rust-lang#138349 (Emit function declarations for functions with `#[linkage="extern_weak"]`) - rust-lang#138412 (Install licenses into `share/doc/rust/licenses`) - rust-lang#138577 (rustdoc-json: Don't also include `#[deprecated]` in `Item::attrs`) - rust-lang#138588 (Avoid double lowering of idents) Failed merges: - rust-lang#138321 ([bootstrap] Distribute split debuginfo if present) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#133870 - nbdd0121:asm, r=traviscross,nnethercote Stabilize `asm_goto` feature gate Stabilize `asm_goto` feature (tracked by rust-lang#119364). The issue will remain open and be updated to track `asm_goto_with_outputs`. Reference PR: rust-lang/reference#1693 # Stabilization Report This feature adds a `label <block>` operand type to `asm!`. `<block>` must be a block expression with type unit or never. The address of the block is substituted and the assembly may jump to the block. When block completes the `asm!` block returns and continues execution. The block starts a new safety context and unsafe operations within must have additional `unsafe`s; the effect of `unsafe` that surrounds `asm!` block is cancelled. See rust-lang#119364 (comment) and rust-lang#131544. It's currently forbidden to use `asm_goto` with output operands; that is still unstable under `asm_goto_with_outputs`. Example: ```rust unsafe { asm!( "jmp {}", label { println!("Jumped from asm!"); } ); } ``` Tests: - tests/ui/asm/x86_64/goto.rs - tests/ui/asm/x86_64/goto-block-safe.stderr - tests/ui/asm/x86_64/bad-options.rs - tests/codegen/asm/goto.rs
Successfully merging this pull request may close these issues.
None yet
Stabilize
asm_goto
feature (tracked by #119364). The issue will remain open and be updated to trackasm_goto_with_outputs
.Reference PR: rust-lang/reference#1693
Stabilization Report
This feature adds a
label <block>
operand type toasm!
.<block>
must be a block expression with type unit or never. The address of the block is substituted and the assembly may jump to the block. When block completes theasm!
block returns and continues execution.The block starts a new safety context and unsafe operations within must have additional
unsafe
s; the effect ofunsafe
that surroundsasm!
block is cancelled. See #119364 (comment) and #131544.It's currently forbidden to use
asm_goto
with output operands; that is still unstable underasm_goto_with_outputs
.Example:
Tests: