@@ -699,13 +699,14 @@ pub(crate) fn gen_call_handling<'ll, 'tcx>(
699699 a1 : & ' ll Value ,
700700 a2 : & ' ll Value ,
701701 a4 : & ' ll Value ,
702+ is_dynamic : bool ,
702703 ) -> [ & ' ll Value ; 3 ] {
703704 let cx = builder. cx ;
704705 let i32_0 = cx. get_const_i32 ( 0 ) ;
705706
706707 let gep1 = builder. inbounds_gep ( ty, a1, & [ i32_0, i32_0] ) ;
707708 let gep2 = builder. inbounds_gep ( ty, a2, & [ i32_0, i32_0] ) ;
708- let gep3 = builder. inbounds_gep ( ty2, a4, & [ i32_0, i32_0] ) ;
709+ let gep3 = if is_dynamic { builder. inbounds_gep ( ty2, a4, & [ i32_0, i32_0] ) } else { a4 } ;
709710 [ gep1, gep2, gep3]
710711 }
711712
@@ -729,7 +730,7 @@ pub(crate) fn gen_call_handling<'ll, 'tcx>(
729730
730731 // Step 2)
731732 let s_ident_t = offload_globals. ident_t_global ;
732- let geps = get_geps ( builder, ty, ty2, a1, a2, a4) ;
733+ let geps = get_geps ( builder, ty, ty2, a1, a2, a4, has_dynamic ) ;
733734 generate_mapper_call (
734735 builder,
735736 geps,
@@ -762,7 +763,7 @@ pub(crate) fn gen_call_handling<'ll, 'tcx>(
762763 // %41 = call i32 @__tgt_target_kernel(ptr @1, i64 -1, i32 2097152, i32 256, ptr @.kernel_1.region_id, ptr %kernel_args)
763764
764765 // Step 4)
765- let geps = get_geps ( builder, ty, ty2, a1, a2, a4) ;
766+ let geps = get_geps ( builder, ty, ty2, a1, a2, a4, has_dynamic ) ;
766767 generate_mapper_call (
767768 builder,
768769 geps,
0 commit comments