Skip to content

Commit 2cc664d

Browse files
committed
Tests: new
1 parent 9de6314 commit 2cc664d

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

compiler/tests-compiler/cond.ml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,48 @@ let%expect_test "conditional" =
6767
}
6868
//end
6969
|}]
70+
71+
let%expect_test "conditional" =
72+
let program =
73+
compile_and_parse
74+
{|
75+
type rip_relative_kind =
76+
| Explicitly_rip_relative
77+
| Implicitly_rip_relative
78+
| Not_rip_relative
79+
80+
(** val rip_relative_kind_beq :
81+
rip_relative_kind -> rip_relative_kind -> bool **)
82+
83+
let rip_relative_kind_beq x y =
84+
match x with
85+
| Explicitly_rip_relative ->
86+
(match y with
87+
| Explicitly_rip_relative -> true
88+
| Implicitly_rip_relative -> false
89+
| Not_rip_relative -> false)
90+
| Implicitly_rip_relative ->
91+
(match y with
92+
| Explicitly_rip_relative -> false
93+
| Implicitly_rip_relative -> true
94+
| Not_rip_relative -> false)
95+
| Not_rip_relative ->
96+
(match y with
97+
| Explicitly_rip_relative -> false
98+
| Implicitly_rip_relative -> false
99+
| Not_rip_relative -> true)
100+
|}
101+
in
102+
print_fun_decl program (Some "rip_relative_kind_beq");
103+
[%expect {|
104+
function rip_relative_kind_beq(x, y){
105+
switch(x){
106+
case 0:
107+
switch(y){case 0: return 1;case 1: return 0;default: return 0;}
108+
case 1:
109+
switch(y){case 0: return 0;case 1: return 1;default: return 0;}
110+
default: switch(y){case 0: return 0;case 1: return 0;default: return 1;}
111+
}
112+
}
113+
//end
114+
|}]

0 commit comments

Comments
 (0)