diff --git a/crates/compiler/gen_dev/src/generic64/storage.rs b/crates/compiler/gen_dev/src/generic64/storage.rs index 7e2eb7d4b4..55cb3595f2 100644 --- a/crates/compiler/gen_dev/src/generic64/storage.rs +++ b/crates/compiler/gen_dev/src/generic64/storage.rs @@ -1166,9 +1166,9 @@ impl< Some(storages) => storages, None => internal_error!("Jump: unknown point specified to jump to: {:?}", id), }; - for ((sym, layout), wanted_storage) in - args.iter().zip(arg_layouts).zip(param_storage.iter()) - { + + let it = args.iter().zip(arg_layouts).zip(param_storage.iter()); + for ((sym, layout), wanted_storage) in it { // Note: it is possible that the storage we want to move to is in use by one of the args we want to pass. if self.get_storage_for_sym(sym) == wanted_storage { continue; diff --git a/crates/compiler/gen_dev/src/lib.rs b/crates/compiler/gen_dev/src/lib.rs index f70b1c7ecc..68c7e3a4c6 100644 --- a/crates/compiler/gen_dev/src/lib.rs +++ b/crates/compiler/gen_dev/src/lib.rs @@ -213,6 +213,7 @@ trait Backend<'a> { self.free_symbols(stmt); } Stmt::Jump(id, args) => { + self.load_literal_symbols(args); let mut arg_layouts: bumpalo::collections::Vec> = bumpalo::vec![in self.env().arena]; arg_layouts.reserve(args.len()); diff --git a/crates/compiler/test_gen/src/gen_tags.rs b/crates/compiler/test_gen/src/gen_tags.rs index 1ee1a7f19e..25bd7c09d6 100644 --- a/crates/compiler/test_gen/src/gen_tags.rs +++ b/crates/compiler/test_gen/src/gen_tags.rs @@ -825,7 +825,7 @@ fn join_point_if() { } #[test] -#[cfg(any(feature = "gen-llvm", feature = "gen-wasm"))] +#[cfg(any(feature = "gen-llvm", feature = "gen-wasm", feature = "gen-dev"))] fn join_point_when() { assert_evals_to!( indoc!(