Goose  Diff

Differences From Artifact [51739ba84d]:

  • File bs/verify/call.cpp — part of check-in [17301ed8fc] at 2022-06-11 12:29:00 on branch cir-stack-language — Verification now mostly works again, tests not re-enabled yet (user: zlodo size: 3624)

To Artifact [0262dc29de]:

  • File bs/verify/call.cpp — part of check-in [b4d5bdf6ec] at 2022-06-18 18:51:47 on branch cir-stack-language —
    • Added a location id to all CIR instructions (needed with the stack based approach to locate intermediate results)
    • Fixed a bunch of verifier errors
    • Re-enabled most verifier tests, other than some requiring to re-implement a few more bits
    (user: zlodo size: 3638)

62
63
64
65
66
67
68
69

70
71
72
73
74
75
76
62
63
64
65
66
67
68

69
70
71
72
73
74
75
76







-
+







                )
            );

            if( !result )
                return true;

            auto&& [type, val, locId] = *result;
            auto paramVal = BuildComputedValue( type, VarAddr( varId++, type ), Load( type ) );
            auto paramVal = BuildComputedValue( type, VarAddr( varId++, type, locId ), Load( type, locId ) );

            if( auto zv = BuildZ3ExprFromValue( cb, paramVal ) )
            {
                ForEachPredicate( cb, type, zv->expr, [&]( auto&& z3expr, auto locId )
                {
                    DiagnosticsContext dc( fVal->locationId(), "At this call." );
                    b.checkAssertion( z3expr, locId );