Pārlūkot izejas kodu

fix auto int-to-float (close #785)

Nicolas Cannasse 6 gadi atpakaļ
vecāks
revīzija
b835bb0190
1 mainītis faili ar 8 papildinājumiem un 2 dzēšanām
  1. 8 2
      src/generators/genhl.ml

+ 8 - 2
src/generators/genhl.ml

@@ -1027,8 +1027,14 @@ let type_value ctx t p =
 		assert false
 
 let rec eval_to ctx e (t:ttype) =
-	let r = eval_expr ctx e in
-	cast_to ctx r t e.epos
+	match e.eexpr, t with
+	| TConst (TInt i), HF64 ->
+		let r = alloc_tmp ctx t in
+		op ctx (OFloat (r,alloc_float ctx (Int32.to_float i)));
+		r
+	| _ ->
+		let r = eval_expr ctx e in
+		cast_to ctx r t e.epos
 
 and cast_to ?(force=false) ctx (r:reg) (t:ttype) p =
 	let rt = rtype ctx r in