rust/compiler
León Orell Valerian Liehr 2f0c6e217f
Rollup merge of #140490 - folkertdev:asm-parser-changes, r=Amanieu,traviscross
split `asm!` parsing and validation

This PR splits `asm!` parsing and validation into two separate steps.

The parser constructs a `Vec<RawAsmArg>`, with each element corresponding to an argument to one of the `asm!` macros.
The validation then checks things like ordering of arguments or that options are not provided twice.

The motivation is https://github.com/rust-lang/rust/issues/140279, which wants to add `#[cfg(...)]` support to these arguments. This support can now be added in a straightforward way by adding an `attributes: ast::AttrVec` field to `RawAsmArg`.

An extra reason for this split is that `rustfmt` probably wants to format the assembly at some point (currently that appears to be stubbed out, and the formatting is unstable https://github.com/rust-lang/style-team/issues/152).

r? ``@ghost`` (just want to look at CI for now)

cc ``@ytmimi`` we discussed asm formatting a little while ago in https://github.com/rust-lang/rustfmt/issues/6526. Am I correct in assuming that `AsmArgs` does not give enough information for formatting, but that `RawAsmArgs` would (it e.g. does not join information from multiple lines). This must have been an issue before?

try-job: aarch64-apple
2025-05-18 18:44:10 +02:00
..
2025-05-12 15:33:37 +02:00
2025-05-12 15:33:37 +02:00
2025-05-12 15:33:37 +02:00
2025-05-12 15:33:37 +02:00
2025-05-12 15:33:37 +02:00
2025-05-12 15:33:37 +02:00
2025-05-12 15:33:37 +02:00
2025-05-12 15:33:37 +02:00
2025-05-11 14:37:54 +10:00
2025-05-12 15:33:37 +02:00
2025-05-12 15:33:37 +02:00
2025-05-12 15:33:37 +02:00
2025-05-12 15:33:37 +02:00
2025-05-12 15:33:37 +02:00
2025-05-12 15:33:37 +02:00