Project

General

Profile

Revision 6afa892a src/machine_code.ml

View differences:

src/machine_code.ml
294 294
 | Expr_when    (e1, _, _)          -> translate_expr node args e1
295 295
 | Expr_merge   (x, _)              -> raise NormalizationError
296 296
 | Expr_appl (id, e, _) when Basic_library.is_internal_fun id ->
297
   let id =
298
     (* need to specialize C (dis)equality operators wrt boolean type
299
        because C boolean truth value is not unique *)
300
     match !Options.output with
301
     | "C" when Types.is_bool_type expr.expr_type ->
302
       if id = "="  then "equi" else
303
       if id = "!=" then "xor"
304
       else id
305
     | _   -> id in
297 306
   let nd = node_from_name id in
298 307
   (match e.expr_desc with
299 308
   | Expr_tuple el -> Fun (node_name nd, List.map (translate_expr node args) el)

Also available in: Unified diff