rhysd/gocaml

Nested `if` expression can't be compiled

rhysd opened this issue · 0 comments

rhysd commented

Repro:

print_int (if true then 42 else if true then 21 else 10)

Error:

: PHI node entries do not match predecessors!
  %if.merge4 = phi i64 [ 42, %if.then ], [ %if.merge, %if.else ]
label %if.then
label %if.end3
Instruction does not dominate all uses!
  %if.merge = phi i64 [ 21, %if.then1 ], [ 10, %if.else2 ]
  %if.merge4 = phi i64 [ 42, %if.then ], [ %if.merge, %if.else ]

Merging values with phi instruction looks failed