[Eva] Fixes the generation of assigns clauses required for Eva.
- Only generates assigns clauses when required: - when the analysis uses the specification to analyze a function (decided in function_calls.ml) - for Frama_C_* builtins, such as Frama_C_assert. Others builtins should already have a specification. - when interpreting a Frama_C_show_each directive, so other plugins known these functions have no effect. - in [Logic_inout.valid_behaviors], used by inout and from plugins to interpret a function specification. - Also generates assigns clauses for functions with a body: this is required for the analysis of recursive functions and of functions specified in the -eva-use-spec parameter (in both case, a specific Eva warning is emitted). - In recursion.ml, renames get_spec to check_spec. The generation of assigns clauses is now uniformly done in function_calls.
Showing
- src/plugins/eva/domains/cvalue/builtins.ml 5 additions, 1 deletionsrc/plugins/eva/domains/cvalue/builtins.ml
- src/plugins/eva/engine/compute_functions.ml 2 additions, 3 deletionssrc/plugins/eva/engine/compute_functions.ml
- src/plugins/eva/engine/function_calls.ml 12 additions, 6 deletionssrc/plugins/eva/engine/function_calls.ml
- src/plugins/eva/engine/recursion.ml 11 additions, 32 deletionssrc/plugins/eva/engine/recursion.ml
- src/plugins/eva/engine/recursion.mli 1 addition, 1 deletionsrc/plugins/eva/engine/recursion.mli
- src/plugins/eva/engine/transfer_logic.ml 0 additions, 3 deletionssrc/plugins/eva/engine/transfer_logic.ml
- src/plugins/eva/engine/transfer_stmt.ml 3 additions, 0 deletionssrc/plugins/eva/engine/transfer_stmt.ml
- src/plugins/eva/legacy/logic_inout.ml 1 addition, 3 deletionssrc/plugins/eva/legacy/logic_inout.ml
Loading
Please register or sign in to comment