Goose  Diff

Differences From Artifact [e5d196205a]:

  • File bs/verify/call.cpp — part of check-in [08ffdaf6db] at 2022-11-11 20:01:13 on branch trunk —
    • Implemented template tuples and vararg tuples
    • Fixed a few issues with the verifier
    (user: zlodo size: 3702)

To Artifact [13d2ddea54]:

  • File bs/verify/call.cpp — part of check-in [9b8306c3af] at 2023-01-05 19:44:44 on branch trunk — Fixed passing tuple by value to functions, which involved properly handling type checking of constant tuples containing computed data and some codegen bugs (user: zlodo size: 3696)

69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
                )
            );

            if( !result )
                return true;

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

            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 );
            } );







|







69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
                )
            );

            if( !result )
                return true;

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

            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 );
            } );