diff options
| author | Matthias Krüger <476013+matthiaskrgr@users.noreply.github.com> | 2025-06-03 21:53:36 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-03 21:53:36 +0200 |
| commit | 582ad1f6f32daf3261ddb4e587290eec429e7179 (patch) | |
| tree | 60c57f83383527a265260cc3be3067c34d1014e6 /tests/codegen/src-hash-algorithm/src-hash-algorithm-md5.rs | |
| parent | 99e783d4e9bdcc44e2071973631a7d5e689b0787 (diff) | |
| parent | 12be26f9280b2a72918be0e7a642a1267ea28896 (diff) | |
| download | rust-582ad1f6f32daf3261ddb4e587290eec429e7179.tar.gz rust-582ad1f6f32daf3261ddb4e587290eec429e7179.zip | |
Rollup merge of #141569 - workingjubilee:canonicalize-abi, r=bjorn3
Replace ad-hoc ABI "adjustments" with an `AbiMap` to `CanonAbi`
Our `conv_from_spec_abi`, `adjust_abi`, and `is_abi_supported` combine to give us a very confusing way of reasoning about what _actual_ calling convention we want to lower our code to and whether we want to compile the resulting code at all. Instead of leaving this code as a miniature adventure game in which someone tries to combine stateful mutations into a Rube Goldberg machine that will let them escape the maze and arrive at the promised land of codegen, we let `AbiMap` devour this complexity. Once you have an `AbiMap`, you can answer which `ExternAbi`s will lower to what `CanonAbi`s (and whether they will lower at all).
Removed:
- `conv_from_spec_abi` replaced by `AbiMap::canonize_abi`
- `adjust_abi` replaced by same
- `Conv::PreserveAll` as unused
- `Conv::Cold` as unused
- `enum Conv` replaced by `enum CanonAbi`
target-spec.json changes:
- If you have a target-spec.json then now your "entry-abi" key will be specified in terms of one of the `"{abi}"` strings Rust recognizes, e.g.
```json
"entry-abi": "C",
"entry-abi": "win64",
"entry-abi": "aapcs",
```
Diffstat (limited to 'tests/codegen/src-hash-algorithm/src-hash-algorithm-md5.rs')
0 files changed, 0 insertions, 0 deletions
