Goose  Diff

Differences From Artifact [4e6dec6a3e]:

  • File bs/verify/call.cpp — part of check-in [c066339928] at 2021-11-28 13:34:49 on branch trunk — Verification: fixed incorrect handling of type predicates in function parameters (user: zlodo size: 3583)

To Artifact [c7647710bb]:

  • File bs/verify/call.cpp — part of check-in [43f03d4856] at 2022-01-07 00:59:11 on branch trunk —
    • Verifier: fixed some errors in the implementation of the k-induction loop verification, which was breaking in some cases with nested loops
    • Verifier: fixed some data flow bugs that resulted in losing track of the state of some local variables in some situations
    (user: zlodo size: 3433)

19
20
21
22
23
24
25
26

27
28
29
30
31
32
33
34
35
19
20
21
22
23
24
25

26


27
28
29
30
31
32
33







-
+
-
-








        auto retExpr = BuildZ3ConstantFromType( b, ft.returnType(), format( "r{}", b.newUniqueId() ) );

        // Create a temporary builder to construct the z3 expressions out of the
        // function's pre-conditions and postconditions, configured
        // to perform the necessary replacements for arguments and for the
        // return value placeholder.
        Builder cb( b.context(), *b.solver(), b.remapper() );
        Builder cb = b;
        cb.setAssertionHandler( b.assertionHandler() );
        cb.setCurrentPredicate( b.currentPredicate() );
        cb.setLoadMustAssume( false );

        // Inject the arguments in the context.
        // They will be picked up by getVars instructions when refered to
        // by the verification conditions.
        uint32_t index = 0;