cannot have Direct for unsized types
This commit is contained in:
parent
29a4b7b971
commit
3ee65c28e9
@ -351,6 +351,11 @@ fn llvm_type(&self, cx: &CodegenCx<'ll, 'tcx>) -> &'ll Type {
|
|||||||
// guarnateeing that we generate ABI-compatible LLVM IR. Things get tricky for
|
// guarnateeing that we generate ABI-compatible LLVM IR. Things get tricky for
|
||||||
// aggregates...
|
// aggregates...
|
||||||
if matches!(arg.layout.abi, abi::Abi::Aggregate { .. }) {
|
if matches!(arg.layout.abi, abi::Abi::Aggregate { .. }) {
|
||||||
|
assert!(
|
||||||
|
arg.layout.is_sized(),
|
||||||
|
"`PassMode::Direct` for unsized type: {}",
|
||||||
|
arg.layout.ty
|
||||||
|
);
|
||||||
// This really shouldn't happen, since `immediate_llvm_type` will use
|
// This really shouldn't happen, since `immediate_llvm_type` will use
|
||||||
// `layout.fields` to turn this Rust type into an LLVM type. This means all
|
// `layout.fields` to turn this Rust type into an LLVM type. This means all
|
||||||
// sorts of Rust type details leak into the ABI. However wasm sadly *does*
|
// sorts of Rust type details leak into the ABI. However wasm sadly *does*
|
||||||
|
Loading…
Reference in New Issue
Block a user