diff --git a/crates/compiler/gen_llvm/src/llvm/lowlevel.rs b/crates/compiler/gen_llvm/src/llvm/lowlevel.rs index b768b1d7fe..48e63b6330 100644 --- a/crates/compiler/gen_llvm/src/llvm/lowlevel.rs +++ b/crates/compiler/gen_llvm/src/llvm/lowlevel.rs @@ -849,13 +849,22 @@ pub(crate) fn run_low_level<'a, 'ctx>( // List.concatUtf8: List U8, Str -> List U8 arguments!(list, string); - call_list_bitcode_fn( - env, - &[list.into_struct_value()], - &[string], - BitcodeReturns::List, - bitcode::LIST_CONCAT_UTF8, - ) + match env.target.ptr_width() { + PtrWidth::Bytes4 => call_str_bitcode_fn( + env, + &[list, string], + &[], + BitcodeReturns::List, + bitcode::LIST_CONCAT_UTF8, + ), + PtrWidth::Bytes8 => call_list_bitcode_fn( + env, + &[list.into_struct_value()], + &[string], + BitcodeReturns::List, + bitcode::LIST_CONCAT_UTF8, + ), + } } NumToStr => { // Num.toStr : Num a -> Str