You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

26 lines
984 B

(*
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
open! IStd
(** Utility module for translating unary and binary operations and compound assignments *)
val bin_op_to_string : Clang_ast_t.binary_operator_info -> string
val binary_operation_instruction :
Clang_ast_t.source_range -> Clang_ast_t.binary_operator_info -> Exp.t * Typ.t -> Typ.t
-> Exp.t * Typ.t -> Location.t -> Exp.t * Sil.instr list
(** Returns a pair ([binary_expression], instructions). "binary_expression" is returned when we are
calculating an expression "instructions" is not empty when the binary operator is actually a
statement like an assignment. *)
val unary_operation_instruction :
CFrontend_config.translation_unit_context -> Clang_ast_t.unary_operator_info -> Exp.t -> Typ.t
-> Location.t -> Exp.t * Sil.instr list
val sil_const_plus_one : Exp.t -> Exp.t