diff --git a/tests/specs/oracle/assigns.res.oracle b/tests/specs/oracle/assigns.res.oracle index 64da5ca26a74e91db6998b0cdaf9df5498c91394..b92679e0f0276ea6309e41be8cfd2d616b62309b 100644 --- a/tests/specs/oracle/assigns.res.oracle +++ b/tests/specs/oracle/assigns.res.oracle @@ -5,8 +5,10 @@ Now output intermediate result [eva:initial-state] Values of globals at initialization [kernel:annot:missing-spec] assigns.cc:14: Warning: - Neither code nor explicit assigns clause for function swap, generating default assigns from the specification + Neither code nor explicit assigns for function swap, + generating default clauses from the specification. See -generated-spec-* options for more info [eva] using specification for function swap +[kernel] assigns.cc:14: Warning: keeping only assigns from behaviors: default! [eva:alarm] assigns.cc:15: Warning: assertion got status unknown. [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function main: @@ -19,7 +21,7 @@ Now output intermediate result /*@ requires \valid(q); requires \valid(p); assigns *p, *q; - assigns *p \from *q, *p; + assigns *p \from *p, *q; assigns *q \from *p; behavior default: diff --git a/tests/stl/oracle/stl_unique_ptr.res.oracle b/tests/stl/oracle/stl_unique_ptr.res.oracle index 29d4c6aa5f2466de4e1d21989683cc368f5b5bcf..f6e48157e8a0ec12875bf676d6f38613ee93fa94 100644 --- a/tests/stl/oracle/stl_unique_ptr.res.oracle +++ b/tests/stl/oracle/stl_unique_ptr.res.oracle @@ -21,10 +21,10 @@ Now output intermediate result [kernel] Warning: Assuming declared function free can't throw any exception [kernel] Warning: Assuming declared function malloc can't throw any exception [kernel] Warning: Assuming declared function free can't throw any exception -[kernel:annot:missing-spec] stl_unique_ptr.cpp:105: Warning: - Neither code nor specification for function malloc, generating default assigns from the prototype -[kernel:annot:missing-spec] stl_unique_ptr.cpp:105: Warning: - Neither code nor specification for function free, generating default assigns from the prototype +[eva:builtins:missing-spec] <builtin>:0: Warning: + The builtin for function malloc will not be used, as its frama-c libc specification is not available. +[eva:builtins:missing-spec] <builtin>:0: Warning: + The builtin for function free will not be used, as its frama-c libc specification is not available. [eva] Analyzing a complete application starting at main [eva:initial-state] Values of globals at initialization _frama_c_rtti_name_info.name ∈ {{ "integral_constant" }} @@ -254,552 +254,57 @@ Now output intermediate result _frama_c_rtti_name_info.name ∈ {{ "ClassTemplate" }} {.base_classes; .number_of_base_classes; .pvmt} ∈ {0} -[eva] stl_unique_ptr.cpp:9: - allocating variable __malloc_test_primitive_payload_l9 +[kernel:annot:missing-spec] stl_unique_ptr.cpp:9: Warning: + Neither code nor specification for function malloc, + generating default assigns. See -generated-spec-* options for more info +[eva] using specification for function malloc [eva:alarm] share/libc++/memory:477: Warning: - function operator*: postcondition got status unknown. -[eva] stl_unique_ptr.cpp:15: - allocating variable __malloc_test_primitive_payload_l15 -[eva:alarm] share/libc++/memory:577: Warning: - function operator[]: postcondition got status unknown. -[eva:alarm] stl_unique_ptr.cpp:17: Warning: - signed overflow. - assert *tmp_6 + 1 ≤ 2147483647; - (tmp_6 from - _ZNK3std10unique_ptrIA_iN3stdE14default_deleteIA_iEEEixRij((struct _ZN3stdE10unique_ptrIA_iN3stdE14default_deleteIA_iEE const *)(& up3), (_ZN3stdE6size_t)0)) -[eva:alarm] stl_unique_ptr.cpp:29: Warning: - out of bounds read. assert \valid_read(up5_raw + 0); -[eva] stl_unique_ptr.cpp:44: - allocating variable __malloc_test_struct_payload_l44 -[eva:alarm] stl_unique_ptr.cpp:44: Warning: - function PlainOldStruct::Ctor: precondition got status unknown. -[eva] stl_unique_ptr.cpp:78: - allocating variable __malloc_test_template_payload_l78 -[eva:alarm] stl_unique_ptr.cpp:78: Warning: - function ClassTemplate<int,0>::Ctor: precondition got status unknown. + function operator*: postcondition got status invalid. [eva:summary] ====== ANALYSIS SUMMARY ====== ---------------------------------------------------------------------------- - 74 functions analyzed (out of 100): 74% coverage. - In these functions, 262 statements reached (out of 293): 89% coverage. + 5 functions analyzed (out of 100): 5% coverage. + In these functions, 16 statements reached (out of 55): 29% coverage. ---------------------------------------------------------------------------- Some errors and warnings have been raised during the analysis: - by the Eva analyzer: 0 errors 0 warnings - by the Frama-C kernel: 0 errors 21 warnings + by the Eva analyzer: 0 errors 2 warnings + by the Frama-C kernel: 0 errors 20 warnings ---------------------------------------------------------------------------- - 2 alarms generated by the analysis: - 1 invalid memory access - 1 integer overflow + 0 alarms generated by the analysis. ---------------------------------------------------------------------------- Evaluation of the logical properties reached by the analysis: Assertions 0 valid 0 unknown 0 invalid 0 total - Preconditions 142 valid 2 unknown 0 invalid 144 total - 98% of the logical properties reached have been proven. + Preconditions 5 valid 0 unknown 0 invalid 5 total + 100% of the logical properties reached have been proven. ---------------------------------------------------------------------------- -[from] Computing for function pull -[from] Done for function pull -[from] Computing for function push -[from] Done for function push -[from] Computing for function ClassTemplate<int,0>::Ctor -[from] Done for function ClassTemplate<int,0>::Ctor -[from] Computing for function ClassTemplate<int,0>::Dtor -[from] Done for function ClassTemplate<int,0>::Dtor -[from] Computing for function pull -[from] Done for function pull -[from] Computing for function push -[from] Done for function push -[from] Computing for function PlainOldStruct::Ctor -[from] Done for function PlainOldStruct::Ctor -[from] Computing for function PlainOldStruct::Dtor -[from] Done for function PlainOldStruct::Dtor -[from] Computing for function release -[from] Done for function release -[from] Computing for function unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>::Dtor -[from] Done for function unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>::Dtor -[from] Computing for function release -[from] Done for function release -[from] Computing for function unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>::Dtor -[from] Done for function unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>::Dtor -[from] Computing for function release -[from] Done for function release -[from] Computing for function unique_ptr<int[],std::default_delete<int[]>>::Dtor -[from] Done for function unique_ptr<int[],std::default_delete<int[]>>::Dtor -[from] Computing for function release -[from] Done for function release -[from] Computing for function unique_ptr<int,std::default_delete<int>>::Dtor -[from] Done for function unique_ptr<int,std::default_delete<int>>::Dtor -[from] Computing for function default_delete<ClassTemplate<int,0>>::Ctor -[from] Done for function default_delete<ClassTemplate<int,0>>::Ctor -[from] Computing for function unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>::Ctor -[from] Done for function unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>::Ctor -[from] Computing for function default_delete<ClassTemplate<int,0>>::Ctor -[from] Done for function default_delete<ClassTemplate<int,0>>::Ctor -[from] Computing for function default_delete<ClassTemplate<int,0>>::Ctor -[from] Done for function default_delete<ClassTemplate<int,0>>::Ctor -[from] Computing for function default_delete<ClassTemplate<int,0>>::Dtor -[from] Done for function default_delete<ClassTemplate<int,0>>::Dtor -[from] Computing for function operator= -[from] Done for function operator= -[from] Computing for function default_delete<PlainOldStruct>::Ctor -[from] Done for function default_delete<PlainOldStruct>::Ctor -[from] Computing for function unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>::Ctor -[from] Done for function unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>::Ctor -[from] Computing for function default_delete<PlainOldStruct>::Ctor -[from] Done for function default_delete<PlainOldStruct>::Ctor -[from] Computing for function default_delete<PlainOldStruct>::Ctor -[from] Done for function default_delete<PlainOldStruct>::Ctor -[from] Computing for function default_delete<PlainOldStruct>::Dtor -[from] Done for function default_delete<PlainOldStruct>::Dtor -[from] Computing for function operator= -[from] Done for function operator= -[from] Computing for function default_delete<int[]>::Ctor -[from] Done for function default_delete<int[]>::Ctor -[from] Computing for function unique_ptr<int[],std::default_delete<int[]>>::Ctor -[from] Done for function unique_ptr<int[],std::default_delete<int[]>>::Ctor -[from] Computing for function default_delete<int[]>::Ctor -[from] Done for function default_delete<int[]>::Ctor [from] Computing for function default_delete<int>::Ctor [from] Done for function default_delete<int>::Ctor [from] Computing for function unique_ptr<int,std::default_delete<int>>::Ctor [from] Done for function unique_ptr<int,std::default_delete<int>>::Ctor -[from] Computing for function default_delete<int>::Ctor -[from] Done for function default_delete<int>::Ctor -[from] Computing for function default_delete<int>::Dtor -[from] Done for function default_delete<int>::Dtor -[from] Computing for function operator= -[from] Done for function operator= -[from] Computing for function move<std::unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>&> -[from] Done for function move<std::unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>&> -[from] Computing for function move<std::unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>&> -[from] Done for function move<std::unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>&> -[from] Computing for function move<std::unique_ptr<int[],std::default_delete<int[]>>&> -[from] Done for function move<std::unique_ptr<int[],std::default_delete<int[]>>&> -[from] Computing for function swap<std::default_delete<ClassTemplate<int,0>>> -[from] Done for function swap<std::default_delete<ClassTemplate<int,0>>> -[from] Computing for function swap<std::default_delete<PlainOldStruct>> -[from] Done for function swap<std::default_delete<PlainOldStruct>> -[from] Computing for function swap<std::default_delete<int>> -[from] Done for function swap<std::default_delete<int>> -[from] Computing for function swap<ClassTemplate<int,0>*> -[from] Done for function swap<ClassTemplate<int,0>*> -[from] Computing for function swap -[from] Done for function swap -[from] Computing for function swap<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>> -[from] Done for function swap<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>> -[from] Computing for function swap<PlainOldStruct*> -[from] Done for function swap<PlainOldStruct*> -[from] Computing for function swap -[from] Done for function swap -[from] Computing for function swap<PlainOldStruct,std::default_delete<PlainOldStruct>> -[from] Done for function swap<PlainOldStruct,std::default_delete<PlainOldStruct>> -[from] Computing for function swap<int*> -[from] Done for function swap<int*> -[from] Computing for function swap -[from] Done for function swap -[from] Computing for function swap<int,std::default_delete<int>> -[from] Done for function swap<int,std::default_delete<int>> -[from] Computing for function forward<std::unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>> -[from] Done for function forward<std::unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>> -[from] Computing for function forward<std::unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>> -[from] Done for function forward<std::unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>> -[from] Computing for function forward<std::unique_ptr<int[],std::default_delete<int[]>>> -[from] Done for function forward<std::unique_ptr<int[],std::default_delete<int[]>>> -[from] Computing for function forward<std::default_delete<ClassTemplate<int,0>>> -[from] Done for function forward<std::default_delete<ClassTemplate<int,0>>> -[from] Computing for function unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>::Ctor -[from] Done for function unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>::Ctor -[from] Computing for function forward<std::default_delete<PlainOldStruct>> -[from] Done for function forward<std::default_delete<PlainOldStruct>> -[from] Computing for function unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>::Ctor -[from] Done for function unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>::Ctor -[from] Computing for function forward<std::default_delete<int[]>> -[from] Done for function forward<std::default_delete<int[]>> -[from] Computing for function unique_ptr<int[],std::default_delete<int[]>>::Ctor -[from] Done for function unique_ptr<int[],std::default_delete<int[]>>::Ctor -[from] Computing for function std::unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>::operator-> -[from] Done for function std::unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>::operator-> -[from] Computing for function std::unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>::operator-> -[from] Done for function std::unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>::operator-> -[from] Computing for function operator[] -[from] Done for function operator[] [from] Computing for function operator* [from] Done for function operator* -[from] Computing for function operator() -[from] Computing for function free <-operator() -[from] Done for function free -[from] Done for function operator() -[from] Computing for function reset -[from] Done for function reset -[from] Computing for function operator() -[from] Done for function operator() -[from] Computing for function reset -[from] Done for function reset -[from] Computing for function operator() -[from] Done for function operator() -[from] Computing for function reset -[from] Done for function reset -[from] Computing for function test_struct_payload -[from] Computing for function malloc <-test_struct_payload -[from] Done for function malloc -[from] Done for function test_struct_payload -[from] Computing for function test_template_payload -[from] Done for function test_template_payload [from] Computing for function test_primitive_payload +[from] Computing for function malloc <-test_primitive_payload +[from] Done for function malloc +[from] Non-terminating function test_primitive_payload (no dependencies) [from] Done for function test_primitive_payload [from] Computing for function main +[from] Non-terminating function main (no dependencies) [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== These dependencies hold at termination for the executions that terminate: -[from] Function pull: - \result FROM this -[from] Function push: - ct FROM this; x; var -[from] Function ClassTemplate<int,0>::Ctor: - NO EFFECTS -[from] Function ClassTemplate<int,0>::Dtor: - NO EFFECTS -[from] Function pull: - \result FROM this; pos -[from] Function push: - pos FROM this; x (and SELF) - __malloc_test_struct_payload_l44 FROM this; x (and SELF) -[from] Function PlainOldStruct::Ctor: - NO EFFECTS -[from] Function PlainOldStruct::Dtor: - NO EFFECTS -[from] Function release: - up4 FROM this - \result FROM this; up4 -[from] Function unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>::Dtor: - NO EFFECTS -[from] Function release: - up4 FROM this - \result FROM this; up4 -[from] Function unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>::Dtor: - NO EFFECTS -[from] Function release: - up5 FROM this - \result FROM this; up5 -[from] Function unique_ptr<int[],std::default_delete<int[]>>::Dtor: - NO EFFECTS -[from] Function release: - up2 FROM this - \result FROM this; up2 -[from] Function unique_ptr<int,std::default_delete<int>>::Dtor: - NO EFFECTS -[from] Function default_delete<ClassTemplate<int,0>>::Ctor: - NO EFFECTS -[from] Function unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>::Ctor: - up1 FROM this; p (and SELF) - up2 FROM this; p (and SELF) -[from] Function default_delete<ClassTemplate<int,0>>::Ctor: - NO EFFECTS -[from] Function default_delete<ClassTemplate<int,0>>::Ctor: - NO EFFECTS -[from] Function default_delete<ClassTemplate<int,0>>::Dtor: - NO EFFECTS -[from] Function operator=: - \result FROM this -[from] Function default_delete<PlainOldStruct>::Ctor: - NO EFFECTS -[from] Function unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>::Ctor: - up1 FROM this; p (and SELF) - up2 FROM this; p (and SELF) -[from] Function default_delete<PlainOldStruct>::Ctor: - NO EFFECTS -[from] Function default_delete<PlainOldStruct>::Ctor: - NO EFFECTS -[from] Function default_delete<PlainOldStruct>::Dtor: - NO EFFECTS -[from] Function operator=: - \result FROM this -[from] Function default_delete<int[]>::Ctor: - NO EFFECTS -[from] Function unique_ptr<int[],std::default_delete<int[]>>::Ctor: - up3 FROM this; p -[from] Function default_delete<int[]>::Ctor: - NO EFFECTS [from] Function default_delete<int>::Ctor: NO EFFECTS [from] Function unique_ptr<int,std::default_delete<int>>::Ctor: up1 FROM this; p (and SELF) up2 FROM this; p (and SELF) -[from] Function default_delete<int>::Ctor: - NO EFFECTS -[from] Function default_delete<int>::Dtor: - NO EFFECTS -[from] Function operator=: - \result FROM this -[from] Function move<std::unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>&>: - \result FROM t -[from] Function move<std::unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>&>: - \result FROM t -[from] Function move<std::unique_ptr<int[],std::default_delete<int[]>>&>: - \result FROM t -[from] Function swap<std::default_delete<ClassTemplate<int,0>>>: - NO EFFECTS -[from] Function swap<std::default_delete<PlainOldStruct>>: - NO EFFECTS -[from] Function swap<std::default_delete<int>>: - NO EFFECTS -[from] Function swap<ClassTemplate<int,0>*>: - up1 FROM a; b; up2 - up2 FROM a; b; up1 -[from] Function swap: - up1 FROM this; u; up2 - up2 FROM this; u; up1 -[from] Function swap<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>: - up1 FROM x; y; up2 - up2 FROM x; y; up1 -[from] Function swap<PlainOldStruct*>: - up1 FROM a; b; up2 - up2 FROM a; b; up1 -[from] Function swap: - up1 FROM this; u; up2 - up2 FROM this; u; up1 -[from] Function swap<PlainOldStruct,std::default_delete<PlainOldStruct>>: - up1 FROM x; y; up2 - up2 FROM x; y; up1 -[from] Function swap<int*>: - up1 FROM a; b; up2 - up2 FROM a; b; up1 -[from] Function swap: - up1 FROM this; u; up2 - up2 FROM this; u; up1 -[from] Function swap<int,std::default_delete<int>>: - up1 FROM x; y; up2 - up2 FROM x; y; up1 -[from] Function forward<std::unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>>: - \result FROM t -[from] Function forward<std::unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>>: - \result FROM t -[from] Function forward<std::unique_ptr<int[],std::default_delete<int[]>>>: - \result FROM t -[from] Function forward<std::default_delete<ClassTemplate<int,0>>>: - \result FROM t -[from] Function unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>::Ctor: - up2 FROM u (and SELF) - up3 FROM this; u; up2; up3 (and SELF) - up4 FROM this; u; up2; up3 (and SELF) -[from] Function forward<std::default_delete<PlainOldStruct>>: - \result FROM t -[from] Function unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>::Ctor: - up2 FROM u (and SELF) - up3 FROM this; u; up2; up3 (and SELF) - up4 FROM this; u; up2; up3 (and SELF) -[from] Function forward<std::default_delete<int[]>>: - \result FROM t -[from] Function unique_ptr<int[],std::default_delete<int[]>>::Ctor: - up3 FROM u (and SELF) - up4 FROM this; u; up3; up4 (and SELF) - up5 FROM this; u; up3; up4 (and SELF) -[from] Function std::unique_ptr<ClassTemplate<int,0>,std::default_delete<ClassTemplate<int,0>>>::operator->: - \result FROM this; up1; up4 -[from] Function std::unique_ptr<PlainOldStruct,std::default_delete<PlainOldStruct>>::operator->: - \result FROM this; up1; up2; up4 -[from] Function operator[]: - \result FROM this; i; up3 [from] Function operator*: \result FROM this; up1; up2 -[from] Function free: - __malloc_test_primitive_payload_l9[0..3] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_primitive_payload_l15[0..7] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_struct_payload_l44 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_template_payload_l78 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) -[from] Function operator(): - __malloc_test_primitive_payload_l9[0..3] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_primitive_payload_l15[0..7] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_struct_payload_l44 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_template_payload_l78 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) -[from] Function reset: - up1 FROM this; p - __malloc_test_primitive_payload_l9[0..3] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_primitive_payload_l15[0..7] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_struct_payload_l44 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_template_payload_l78 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) -[from] Function operator(): - __malloc_test_primitive_payload_l9[0..3] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_primitive_payload_l15[0..7] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_struct_payload_l44 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_template_payload_l78 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) -[from] Function reset: - up1 FROM this; p - __malloc_test_primitive_payload_l9[0..3] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_primitive_payload_l15[0..7] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_struct_payload_l44 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_template_payload_l78 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) -[from] Function operator(): - __malloc_test_primitive_payload_l9[0..3] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_primitive_payload_l15[0..7] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_struct_payload_l44 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_template_payload_l78 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) -[from] Function reset: - up1 FROM this; p - __malloc_test_primitive_payload_l9[0..3] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_primitive_payload_l15[0..7] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_struct_payload_l44 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_template_payload_l78 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) [from] Function malloc: \result FROM size -[from] Function test_struct_payload: - __malloc_test_primitive_payload_l9[0..3] FROM var; - __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_primitive_payload_l15[0..7] FROM var; - __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_struct_payload_l44 FROM var; - __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_template_payload_l78 FROM var; - __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - \result FROM var -[from] Function test_template_payload: - __malloc_test_primitive_payload_l9[0..3] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_primitive_payload_l15[0..7] FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_struct_payload_l44 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_template_payload_l78 FROM __malloc_test_primitive_payload_l9[0..3]; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - \result FROM var [from] Function test_primitive_payload: - __malloc_test_primitive_payload_l9[0..3] FROM var; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 - __malloc_test_primitive_payload_l15[0..7] FROM var; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 - __malloc_test_struct_payload_l44 FROM var; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_template_payload_l78 FROM var; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - \result FROM var + NON TERMINATING - NO EFFECTS [from] Function main: - __malloc_test_primitive_payload_l9[0..3] FROM argc; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 - __malloc_test_primitive_payload_l15[0..7] FROM argc; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 - __malloc_test_struct_payload_l44 FROM argc; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - __malloc_test_template_payload_l78 FROM argc; - __malloc_test_primitive_payload_l15[0..7]; - __malloc_test_struct_payload_l44; - __malloc_test_template_payload_l78 (and SELF) - \result FROM argc + NON TERMINATING - NO EFFECTS [from] ====== END OF DEPENDENCIES ====== /* Generated by Frama-C */ struct _frama_c_vmt_content { @@ -944,9 +449,6 @@ struct ClassTemplate<int,0> { assigns \result \from size; */ void *malloc(unsigned int size); -/*@ assigns *((char *)ptr + (0 ..)); - assigns *((char *)ptr + (0 ..)) \from *((char *)ptr + (0 ..)); - */ void free(void *ptr); struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info; @@ -3890,7 +3392,6 @@ int test_primitive_payload(int var) (size_t)1); tmp_6 = operator[]((struct unique_ptr<int[],std::default_delete<int[]>> const *)(& up3), (size_t)0); - /*@ assert Eva: signed_overflow: *tmp_6 + 1 ≤ 2147483647; */ *tmp_5 = *tmp_6 + 1; int *up2_raw = release(& up2); if (up2_raw != & var) { @@ -3909,7 +3410,6 @@ int test_primitive_payload(int var) struct unique_ptr<int[],std::default_delete<int[]>> up5; unique_ptr<int[],std::default_delete<int[]>>::Ctor(& up5,tmp_9); int *up5_raw = release(& up5); - /*@ assert Eva: mem_access: \valid_read(up5_raw + 0); */ int result = *(up5_raw + 0); free((void *)up5_raw); __retres = result; diff --git a/tests/val_analysis/oracle/union.res.oracle b/tests/val_analysis/oracle/union.res.oracle index 0e33669957ef8446b58e478bf8c63a86097450f7..405c988678910e2bc548e112b857066e2a5fbca6 100644 --- a/tests/val_analysis/oracle/union.res.oracle +++ b/tests/val_analysis/oracle/union.res.oracle @@ -2,7 +2,8 @@ Now output intermediate result [kernel] Warning: Assuming declared function Frama_C_memcpy can't throw any exception [kernel:annot:missing-spec] union.cc:8: Warning: - Neither code nor specification for function Frama_C_memcpy, generating default assigns from the prototype + Neither code nor specification for function Frama_C_memcpy, + generating default assigns. See -generated-spec-* options for more info [eva] Analyzing a complete application starting at main [eva:initial-state] Values of globals at initialization _frama_c_rtti_name_info.name ∈ {{ "A" }} diff --git a/tests/val_analysis/oracle/union_struct.res.oracle b/tests/val_analysis/oracle/union_struct.res.oracle index 7134aa77fb233323c7d77210068f1842ddcae9f7..310b41e160fe9a773f8fa16e08e9520b9b6a66be 100644 --- a/tests/val_analysis/oracle/union_struct.res.oracle +++ b/tests/val_analysis/oracle/union_struct.res.oracle @@ -2,7 +2,8 @@ Now output intermediate result [kernel] Warning: Assuming declared function Frama_C_memcpy can't throw any exception [kernel:annot:missing-spec] union_struct.cc:17: Warning: - Neither code nor specification for function Frama_C_memcpy, generating default assigns from the prototype + Neither code nor specification for function Frama_C_memcpy, + generating default assigns. See -generated-spec-* options for more info [eva] Analyzing a complete application starting at main [eva:initial-state] Values of globals at initialization _frama_c_rtti_name_info.name ∈ {{ "A" }}