summaryrefslogtreecommitdiff
path: root/testsuite/tests/asmgen/even-odd.cmm
blob: a9e20ad8945f249a360c6dcde9161751b02b903a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(* TEST
readonly_files = "main.c"
arguments = "-DINT_INT -DFUN=is_even main.c"
* asmgen
*)

(function "is_even" (b:int)
  (catch (exit even b)
   with (odd v:val)
     (if (== v 0) 0
         (exit even (- v 1)))
   and (even v:val)
     (if (== v 0) 1
         (exit odd (- v 1)))))