diff --git a/src/plugins/e-acsl/src/code_generator/global_observer.ml b/src/plugins/e-acsl/src/code_generator/global_observer.ml index 352152f2c2a83846935cd323e03bf0838cf5fb99..6ee21213ec0f84eefeec8ec96431d438e48f836f 100644 --- a/src/plugins/e-acsl/src/code_generator/global_observer.ml +++ b/src/plugins/e-acsl/src/code_generator/global_observer.ml @@ -187,20 +187,24 @@ let mk_init_function () = vi, fundec let mk_clean_function () = - (* Create and register [__e_acsl_globals_clean] function with definition - for de-allocation of global variables *) - let vi, fundec, _kf = mk_function function_clean_name in - (* Generate delete statements and add them to the function body *) - let stmts = - Varinfo.Hashtbl.fold_sorted - (fun vi _l acc -> - if Misc.is_fc_or_compiler_builtin vi then acc - else Smart_stmt.delete_stmt vi :: acc) - tbl - [] - in - fundec.sbody.bstmts <- stmts; - vi, fundec + if Varinfo.Hashtbl.length tbl = 0 then + None + else + (* Create and register [__e_acsl_globals_clean] function with definition + for de-allocation of global variables *) + let vi, fundec, _kf = mk_function function_clean_name in + (* Generate delete statements and add them to the function body *) + let return = Cil.mkStmt ~valid_sid:true (Return (None, Location.unknown)) in + let stmts = + Varinfo.Hashtbl.fold_sorted + (fun vi _l acc -> + if Misc.is_fc_or_compiler_builtin vi then acc + else Smart_stmt.delete_stmt vi :: acc) + tbl + [return] + in + fundec.sbody.bstmts <- stmts; + Some (vi, fundec) (* Local Variables: diff --git a/src/plugins/e-acsl/src/code_generator/global_observer.mli b/src/plugins/e-acsl/src/code_generator/global_observer.mli index e37f39301d3515e52be12305f3505d6797eae8c6..de355a0efc90b637caa0253f59ea6e93fee502f2 100644 --- a/src/plugins/e-acsl/src/code_generator/global_observer.mli +++ b/src/plugins/e-acsl/src/code_generator/global_observer.mli @@ -44,9 +44,9 @@ val mk_init_function: unit -> varinfo * fundec (** Generate a new C function containing the observers for global variable declarations and initializations. *) -val mk_clean_function: unit -> varinfo * fundec +val mk_clean_function: unit -> (varinfo * fundec) option (** Generate a new C function containing the observers for global variable - de-allocations. *) + de-allocations if there are global variables. *) (* Local Variables: diff --git a/src/plugins/e-acsl/src/code_generator/injector.ml b/src/plugins/e-acsl/src/code_generator/injector.ml index acae30bc013eeaf62599ee7ba2617d39e26fcba4..f095fa81d2cf4144cf04e60d98175a71b82b5bda 100644 --- a/src/plugins/e-acsl/src/code_generator/injector.ml +++ b/src/plugins/e-acsl/src/code_generator/injector.ml @@ -710,8 +710,12 @@ let inject_global_handler file main = let vi_init, fundec_init = Global_observer.mk_init_function () in let cil_fct_init = GFun(fundec_init, Location.unknown) in (* Create [__e_acsl_globals_delete] function *) - let vi_clean, fundec_clean = Global_observer.mk_clean_function () in - let cil_fct_clean = GFun(fundec_clean, Location.unknown) in + let vi_and_fundec_clean_opt = Global_observer.mk_clean_function () in + let cil_fct_clean_opt = + Option.map + (fun (_, fundec_clean) -> GFun(fundec_clean, Location.unknown)) + vi_and_fundec_clean_opt + in match main with | Some main -> let mk_fct_call vi = @@ -730,14 +734,14 @@ let inject_global_handler file main = (* Create [__e_acsl_globals_init();] call *) let stmt_init = mk_fct_call vi_init in (* Create [__e_acsl_globals_delete();] call *) - let stmt_clean = - match fundec_clean.sbody.bstmts with - | [] -> None - | _ -> Some (mk_fct_call vi_clean) + let stmt_clean_opt = + Option.map + (fun (vi_clean, _) -> mk_fct_call vi_clean) + vi_and_fundec_clean_opt in (* Surround the content of main with the calls to [__e_acsl_globals_init();] and [__e_acsl_globals_delete();] *) - surround_function_with main main_fundec stmt_init stmt_clean; + surround_function_with main main_fundec stmt_init stmt_clean_opt; (* Retrieve all globals except main *) let main_vi = Globals.Functions.get_vi main in let new_globals = @@ -758,9 +762,10 @@ let inject_global_handler file main = let globals_to_add = [ GFun(main_fundec, Location.unknown) ] in (* Prepend [__e_acsl_globals_clean] if not empty *) let globals_to_add = - match fundec_clean.sbody.bstmts with - | [] -> globals_to_add - | _ -> cil_fct_clean :: globals_to_add + Option.fold + ~none:globals_to_add + ~some:(fun cil_fct_clean -> cil_fct_clean :: globals_to_add) + cil_fct_clean_opt in (* Prepend [__e_acsl_globals_init] *) let globals_to_add = cil_fct_init :: globals_to_add in @@ -782,9 +787,10 @@ let inject_global_handler file main = Global_observer.function_init_name Global_observer.function_clean_name; let globals_func = - match fundec_clean.sbody.bstmts with - | [] -> [ cil_fct_init ] - | _ -> [ cil_fct_init; cil_fct_clean ] + Option.fold + ~none:[ cil_fct_init ] + ~some:(fun cil_fct_clean -> [ cil_fct_init; cil_fct_clean ]) + cil_fct_clean_opt in file.globals <- file.globals @ globals_func diff --git a/src/plugins/e-acsl/tests/bts/issue-eacsl-145.c b/src/plugins/e-acsl/tests/bts/issue-eacsl-145.c new file mode 100644 index 0000000000000000000000000000000000000000..dde2d2aed6d86286c36c65a36223e36f2132880d --- /dev/null +++ b/src/plugins/e-acsl/tests/bts/issue-eacsl-145.c @@ -0,0 +1,12 @@ +/* run.config_ci + COMMENT: frama-c/e-acsl#145, test for validity of globals_init and + globals_clean. + STDOPT: +"-verbose 1 -eva-print" +*/ +int G = 0; + +int main(void) { + /*@ assert \valid(&G); */ + int a = G; + return 0; +} diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1386_complex_flowgraph.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1386_complex_flowgraph.c index be6316c86be622b7091172ee88711dbc77e3c620..02552add425756b02c26807c25d7ffb1cac95659 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1386_complex_flowgraph.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1386_complex_flowgraph.c @@ -276,6 +276,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(target)); __e_acsl_delete_block((void *)(source)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1478.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1478.c index 8597f7d23ee7d071eda0d71e93d5f6a31b63d6ae..6c2d67be53715e7a5d784fd50bc381f5d4907df3 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1478.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1478.c @@ -57,6 +57,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& global_i_ptr)); __e_acsl_delete_block((void *)(& global_i)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1837.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1837.c index fc9046840ed4ca86df28bb7a865d2e7edc1ae2b7..3cf6adc6f02ac52fe708175c49057a05fa940204 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1837.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1837.c @@ -91,6 +91,7 @@ void __e_acsl_globals_init(void) void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& S)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2191.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2191.c index 0786c95e01ee021b0812c0200cf26953106efdbb..67003d8a70d3b79b29cedb5364bb28061ea60fb9 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2191.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2191.c @@ -34,6 +34,7 @@ void __e_acsl_globals_init(void) void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(_G)); + return; } int main(int argc, char **argv) diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2192.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2192.c index 5ade9142b8f3038322176beddc25f6e675b371f6..5c8f2b5dde78060dfa54b8f79ab6df8a7c8cc91f 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2192.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2192.c @@ -53,6 +53,7 @@ void __e_acsl_globals_init(void) void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& n)); + return; } int main(int argc, char **argv) diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2305.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2305.c index 2ce056ec2aefa8069a191eef62e02a29706b39cf..327af999d255e34319a0073d8f6157c59a7cc582 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2305.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2305.c @@ -27,6 +27,7 @@ void __e_acsl_globals_init(void) void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& t)); + return; } int main(int argc, char **argv) diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c index 08f3b321a24ee68353bd2d629d1f6859c1458c26..827fce50a41bf6c3b06f32547deb8bfe1754ca2e 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c @@ -17,6 +17,7 @@ void __e_acsl_globals_init(void) void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(t)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-145.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-145.c new file mode 100644 index 0000000000000000000000000000000000000000..7382aae832390fa4f238bd22d1c5753777fdbe85 --- /dev/null +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-145.c @@ -0,0 +1,42 @@ +/* Generated by Frama-C */ +#include "stddef.h" +#include "stdio.h" +int G = 0; +void __e_acsl_globals_init(void) +{ + static char __e_acsl_already_run = 0; + if (! __e_acsl_already_run) { + __e_acsl_already_run = 1; + __e_acsl_store_block((void *)(& G),(size_t)4); + __e_acsl_full_init((void *)(& G)); + } + return; +} + +void __e_acsl_globals_clean(void) +{ + __e_acsl_delete_block((void *)(& G)); + return; +} + +int main(void) +{ + int __retres; + __e_acsl_memory_init((int *)0,(char ***)0,(size_t)8); + __e_acsl_globals_init(); + { + int __gen_e_acsl_valid; + __gen_e_acsl_valid = __e_acsl_valid((void *)(& G),sizeof(int), + (void *)(& G),(void *)0); + __e_acsl_assert(__gen_e_acsl_valid,"Assertion","main","\\valid(&G)", + "tests/bts/issue-eacsl-145.c",9); + } + /*@ assert \valid(&G); */ ; + int a = G; + __retres = 0; + __e_acsl_globals_clean(); + __e_acsl_memory_clean(); + return __retres; +} + + diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-91.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-91.c index c3248c722e31367998e848cf0df89ea8db9c7fd4..b83e193f02ff582da79def45864e71198e617a07 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-91.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-91.c @@ -44,6 +44,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& b)); __e_acsl_delete_block((void *)(& a)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/issue-eacsl-145.res.oracle b/src/plugins/e-acsl/tests/bts/oracle_ci/issue-eacsl-145.res.oracle new file mode 100644 index 0000000000000000000000000000000000000000..73cc9ba6ba110276500aff04912bcc3028097845 --- /dev/null +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/issue-eacsl-145.res.oracle @@ -0,0 +1,39 @@ +[kernel] Parsing tests/bts/issue-eacsl-145.c (with preprocessing) +[e-acsl] beginning translation. +[kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl.h (with preprocessing) +[e-acsl] translation done in project "e-acsl". +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization + G ∈ {0} + __e_acsl_heap_allocation_size ∈ [--..--] + __e_acsl_heap_allocated_blocks ∈ [--..--] + __fc_heap_status ∈ [--..--] + __e_acsl_math_HUGE_VAL ∈ [-1.79769313486e+308 .. 1.79769313486e+308] + __e_acsl_math_HUGE_VALF ∈ [-3.40282346639e+38 .. 3.40282346639e+38] + __e_acsl_math_INFINITY ∈ [-1.79769313486e+308 .. 1.79769313486e+308] + __e_acsl_init ∈ [--..--] +[eva] using specification for function __e_acsl_memory_init +[eva] using specification for function __e_acsl_store_block +[eva] using specification for function __e_acsl_full_init +[eva] using specification for function __e_acsl_valid +[eva] using specification for function __e_acsl_assert +[eva] using specification for function __e_acsl_delete_block +[eva] using specification for function __e_acsl_memory_clean +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:summary] ====== ANALYSIS SUMMARY ====== + ---------------------------------------------------------------------------- + 5 functions analyzed (out of 5): 100% coverage. + In these functions, 27 statements reached (out of 27): 100% coverage. + ---------------------------------------------------------------------------- + No errors or warnings raised during the analysis. + ---------------------------------------------------------------------------- + 0 alarms generated by the analysis. + ---------------------------------------------------------------------------- + Evaluation of the logical properties reached by the analysis: + Assertions 1 valid 0 unknown 0 invalid 1 total + Preconditions 1 valid 0 unknown 0 invalid 1 total + 100% of the logical properties reached have been proven. + ---------------------------------------------------------------------------- diff --git a/src/plugins/e-acsl/tests/bts/oracle_dev/issue-eacsl-145.e-acsl.err.log b/src/plugins/e-acsl/tests/bts/oracle_dev/issue-eacsl-145.e-acsl.err.log new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_ghost.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_ghost.c index d1e84e229ba0f4ce85097cf6267cb5637fd10bda..b6332376af73055adfbe8867b1711754b22783c1 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_ghost.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_ghost.c @@ -20,6 +20,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& P)); __e_acsl_delete_block((void *)(& G)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c b/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c index 09554f35c6239bf11140f87b8473afb363a08eaf..084b8d80b0b70f0e187479c626ebfae990014a28 100644 --- a/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c +++ b/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c @@ -2558,6 +2558,7 @@ void __e_acsl_globals_clean(void) __e_acsl_delete_block((void *)(& valid_specifiers)); __e_acsl_delete_block((void *)(& __fc_p_time_tm)); __e_acsl_delete_block((void *)(& __fc_time_tm)); + return; } int main(int argc, char const **argv) diff --git a/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c b/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c index 8b38c74f47adf8a8dee1af80e6cf8e50eee56625..a8dbdfefe43c11e564c98d33b80eaab44e20a8bb 100644 --- a/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c +++ b/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c @@ -42,6 +42,7 @@ void __e_acsl_globals_init(void) void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& f)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_base_addr.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_base_addr.c index b831f777ef00fa9aca954755f319d46fe0dc2666..378a05448ddcad596a447595e78776e7f72d7b93 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_base_addr.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_base_addr.c @@ -21,6 +21,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& PA)); __e_acsl_delete_block((void *)(A)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_length.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_length.c index cec16f53eafcf4bdda73c28cfd23e9f84a52f914..167233407cad6d69ab1621e17806184c46a1a937 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_length.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_length.c @@ -28,6 +28,7 @@ void __e_acsl_globals_clean(void) __e_acsl_delete_block((void *)(& ZERO)); __e_acsl_delete_block((void *)(& PA)); __e_acsl_delete_block((void *)(A)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_valid.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_valid.c index 33dd06e7f2d63264ef03f86307f95d511ccaa216..4f427bb14ad5288673fba5701c07dcffb87b5937 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_valid.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_valid.c @@ -19,6 +19,7 @@ void __e_acsl_globals_init(void) void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& B)); + return; } int main(int argc, char **argv) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_compound_initializers.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_compound_initializers.c index ab6e1941648571820ef95453bb48dd5f1411e4a0..f8af717e7fc9df4d1b7eb04fc1bd52cc5b60962e 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_compound_initializers.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_compound_initializers.c @@ -74,6 +74,7 @@ void __e_acsl_globals_clean(void) __e_acsl_delete_block((void *)(& _B)); __e_acsl_delete_block((void *)(_A)); __e_acsl_delete_block((void *)(& _F)); + return; } int main(int argc, char **argv) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_errno.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_errno.c index 66d885e493a78e17c9156d5739888910c1afa127..95604146d2919167711fa1e940d76c19284c76c8 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_errno.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_errno.c @@ -17,6 +17,7 @@ void __e_acsl_globals_init(void) void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& errno)); + return; } int main(int argc, char const **argv) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_freeable.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_freeable.c index ab2185597f8b3aed26adfc4e8b2bd9cf0e3dc130..5ec1eaf5bca0f14146c818fd8260405b02da7234 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_freeable.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_freeable.c @@ -17,6 +17,7 @@ void __e_acsl_globals_init(void) void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(array)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_goto.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_goto.c index aa5bc854da21cdcd0906771fb6acfb7d15550196..3c3305ed098b3183adb1a506f537556d888581b2 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_goto.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_goto.c @@ -16,6 +16,7 @@ void __e_acsl_globals_init(void) void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& a)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init.c index c4eb1d146e11ff56d96023a62831c6a24bb837d1..30203990a805d527ac9cf3fb2587a1895b82d9d1 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init.c @@ -20,6 +20,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& b)); __e_acsl_delete_block((void *)(& a)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c index dec94db6533f1ddb8db1ab53e6913dab01393817..7359bae6a17a8d5d64d528e7bfde1ee9204c8933 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c @@ -21,6 +21,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& B)); __e_acsl_delete_block((void *)(& A)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_literal_string.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_literal_string.c index 3fc0d11efa059b157cbf14f9651a0a2f1e537244..133b539e51077488090cd319cc47ad04983e1a31 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_literal_string.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_literal_string.c @@ -89,6 +89,7 @@ void __e_acsl_globals_clean(void) __e_acsl_delete_block((void *)(& S2)); __e_acsl_delete_block((void *)(& S)); __e_acsl_delete_block((void *)(& T)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_init.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_init.c index bae0a76865527daf719714166599c90ca4e9e9ee..946ce35b05636f8bdb682530c16f0ce766d03438 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_init.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_init.c @@ -26,6 +26,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& p)); __e_acsl_delete_block((void *)(& X)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_offset.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_offset.c index 90041c6e180ce1b6859a7d80e14f3777f8ec0bb7..efd908b7a93b22ffcdd486e0659408667d8beb26 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_offset.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_offset.c @@ -21,6 +21,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& PA)); __e_acsl_delete_block((void *)(A)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr_init.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr_init.c index 9f802d1b7fc773bb191e1f1d442744a2754b3540..94cdae153a181cff156ba55e8223e7091c513b33 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr_init.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr_init.c @@ -37,6 +37,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& B)); __e_acsl_delete_block((void *)(& A)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_stdout.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_stdout.c index 63d1db28971baba9550159fcbfd0c46ef6b54c54..b127d652e3c261085c526cce4d62b012f04afb29 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_stdout.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_stdout.c @@ -21,6 +21,7 @@ void __e_acsl_globals_clean(void) __e_acsl_delete_block((void *)(& stdout)); __e_acsl_delete_block((void *)(& stdin)); __e_acsl_delete_block((void *)(& stderr)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid.c index 872f31b112b4b253e3ac9a0ba3499fd144e6d262..5a651806a48c3bce2482ba35ec1fbe0fa68b50fd 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid.c @@ -142,6 +142,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& Z)); __e_acsl_delete_block((void *)(& X)); + return; } int main(void) diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_darray.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_darray.c index 8b6f8a3517a3a9c0557baaca1779ba4708b3b1d6..2d5749303a26b15e1ab2b9436ba2ec3a98e23413 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_darray.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_darray.c @@ -62,6 +62,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(Vertices2)); __e_acsl_delete_block((void *)(Vertices)); + return; } int main(int argc, char const **argv) diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fptr.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fptr.c index a0774cc34295c87a5a34d639ba0140cec590ddc5..e3bf8c116eb8f54b52216bf9adfeb4768712746b 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fptr.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fptr.c @@ -21,6 +21,7 @@ void __e_acsl_globals_init(void) void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& foo)); + return; } int main(int argc, char const **argv) diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_global_init.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_global_init.c index c91eca2c10152d43084174f55903cdc2d34618b6..4b7cbfa0412ae5e8e90dab852b2c2ac16699135c 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_global_init.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_global_init.c @@ -118,6 +118,7 @@ void __e_acsl_globals_clean(void) __e_acsl_delete_block((void *)(& l_desc)); __e_acsl_delete_block((void *)(extra_lbits)); __e_acsl_delete_block((void *)(strings)); + return; } int main(int argc, char const **argv) diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_local_init.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_local_init.c index 1b6b3cd7af3b988453828e9ba7090dda85407203..6086892d5bdee7c9945bfd2b78882ecdef0c16a0 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_local_init.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_local_init.c @@ -110,6 +110,7 @@ void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(Str)); __e_acsl_delete_block((void *)(Strings)); + return; } int main(int argc, char const **argv)