diff options
| author | Oli Scherer <github35764891676564198441@oli-obk.de> | 2025-09-13 07:09:16 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-13 07:09:16 +0000 |
| commit | 8ade141c46ea74b7988e48d26f83b2d24d60a991 (patch) | |
| tree | 2f810c44d18e82c7d160925dc49c157acbae9116 /compiler/rustc_codegen_llvm/src | |
| parent | fc7eb3c28d2be162dd32951811ce7852bb1a2f6a (diff) | |
| parent | 520e45a538a6c047c77785f09fdead3842b7b7ba (diff) | |
| download | rust-8ade141c46ea74b7988e48d26f83b2d24d60a991.tar.gz rust-8ade141c46ea74b7988e48d26f83b2d24d60a991.zip | |
Merge pull request #4584 from rust-lang/rustup-2025-09-13
Automatic Rustup
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/va_arg.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_llvm/src/va_arg.rs b/compiler/rustc_codegen_llvm/src/va_arg.rs index 7eb5d302058..ab08125217f 100644 --- a/compiler/rustc_codegen_llvm/src/va_arg.rs +++ b/compiler/rustc_codegen_llvm/src/va_arg.rs @@ -908,6 +908,21 @@ pub(super) fn emit_va_arg<'ll, 'tcx>( ) } "aarch64" => emit_aapcs_va_arg(bx, addr, target_ty), + "arm" => { + // Types wider than 16 bytes are not currently supported. Clang has special logic for + // such types, but `VaArgSafe` is not implemented for any type that is this large. + assert!(bx.cx.size_of(target_ty).bytes() <= 16); + + emit_ptr_va_arg( + bx, + addr, + target_ty, + PassMode::Direct, + SlotSize::Bytes4, + AllowHigherAlign::Yes, + ForceRightAdjust::No, + ) + } "s390x" => emit_s390x_va_arg(bx, addr, target_ty), "powerpc" => emit_powerpc_va_arg(bx, addr, target_ty), "powerpc64" | "powerpc64le" => emit_ptr_va_arg( |
