rust/tests/ui/abi
bors d19980e1ce Auto merge of #117500 - RalfJung:aggregate-abi, r=davidtwco
Ensure sanity of all computed ABIs

This moves the ABI sanity assertions from the codegen backend to the ABI computation logic. Sadly, due to past mistakes, we [have to](https://github.com/rust-lang/rust/pull/117351#issuecomment-1788495503) be able to compute a sane ABI for nonsensical function types like `extern "C" fn(str) -> str`.  So to make the sanity check pass we first need to make all ABI adjustment deal with unsized types... and we have no shared infrastructure for those adjustments, so that's a bunch of copy-paste. At least we have assertions failing loudly when one accidentally sets a different mode for an unsized argument.

To achieve this, this re-lands the parts of https://github.com/rust-lang/rust/pull/80594 that got reverted in https://github.com/rust-lang/rust/pull/81388.  To avoid breaking wasm ABI again, that ABI now explicitly opts-in to the (wrong, broken) ABI that we currently keep for backwards compatibility. That's still better than having *every* ABI use the wrong broken default!

Cc `@bjorn3`
Fixes https://github.com/rust-lang/rust/issues/115845
2023-11-19 18:42:20 +00:00
..
cross-crate Move /src/test to /tests 2023-01-11 09:32:08 +00:00
extern Move /src/test to /tests 2023-01-11 09:32:08 +00:00
foreign lint/ctypes: ext. abi fn-ptr in internal abi fn 2023-07-03 13:40:20 +01:00
issues Move /src/test to /tests 2023-01-11 09:32:08 +00:00
mir Move /src/test to /tests 2023-01-11 09:32:08 +00:00
numbers-arithmetic Move /src/test to /tests 2023-01-11 09:32:08 +00:00
statics Move /src/test to /tests 2023-01-11 09:32:08 +00:00
struct-enums Move /src/test to /tests 2023-01-11 09:32:08 +00:00
union Move /src/test to /tests 2023-01-11 09:32:08 +00:00
abi-sysv64-arg-passing.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
abi-sysv64-register-usage.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
abi-typo-unstable.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
abi-typo-unstable.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
anon-extern-mod.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
c-stack-as-value.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
c-stack-returning-int64.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cabi-int-widening.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
compatibility.rs Auto merge of #117500 - RalfJung:aggregate-abi, r=davidtwco 2023-11-19 18:42:20 +00:00
debug.rs special case TyAndLayout debug impl 2023-09-15 22:57:07 +02:00
debug.stderr Rollup merge of #115654 - RalfJung:pass-mode-cast, r=compiler-errors 2023-09-17 11:23:25 +00:00
explicit_repr_rust.rs Allow explicit #[repr(Rust)] 2023-07-29 06:58:29 +00:00
homogenous-floats-target-feature-mixup.rs Change src/test to tests in source files, fix tidy and tests 2023-01-11 09:32:13 +00:00
issue-28676.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
lib-defaults.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
nullable-pointer-ffi-compat.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
relocation_model_pic.rs add needs-relocation-model-pic to compiletest 2023-09-29 13:10:26 +02:00
riscv-discoverability-guidance.riscv32.stderr feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
riscv-discoverability-guidance.riscv64.stderr feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
riscv-discoverability-guidance.rs feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
rustcall-generic.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
segfault-no-out-of-stack.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
stack-probes-lto.rs Replace ignore-everything with only-arch 2023-07-29 15:49:07 -07:00
stack-probes.rs Replace ignore-everything with only-arch 2023-07-29 15:49:07 -07:00
stack-protector.rs Fix stack-protector.rs on LLVM 17 2023-08-07 20:35:55 +02:00
unsized-args-in-c-abi-issues-94223-115845.rs add regression test 2023-11-07 17:21:02 +01:00
unsupported.aarch64.stderr feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
unsupported.arm.stderr feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
unsupported.i686.stderr feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
unsupported.riscv32.stderr feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
unsupported.riscv64.stderr feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
unsupported.rs feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
unsupported.x64.stderr feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
variadic-ffi.rs Remove asmjs from tests 2023-10-28 23:11:03 -07:00
x86stdcall2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
x86stdcall.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00