Goose  Diff

Differences From Artifact [bf331f747c]:

  • File bs/builtins/statements/break.cpp — part of check-in [1ad61a2717] at 2021-11-11 20:05:58 on branch trunk — Refactored the code builder: it is now carried around as a Value, and accessed through a bunch of extension points, so we can have different builders (and even user defined ones) later to make classes etc. (user: zlodo size: 1350)

To Artifact [ec51accd73]:

  • File bs/builtins/statements/break.cpp — part of check-in [0db147f117] at 2024-09-15 20:24:31 on branch cir-ssa-refactor — Add clang format settings, reformat everything (user: achavasse size: 1399)

14
15
16
17
18
19
20

21
22
23
24
25
26
27
28
        {
            auto& dm = DiagnosticsManager::GetInstance();

            auto level = GetBreakableScopeLevels( p.context() );

            if( p.isInParenExpr() || !level )
            {

                dm.emitSyntaxErrorMessage( locationId, "the break statement is not allowed here.", 0 );
                return false;
            }

            auto cfg = GetCFG( p.context() );

            if( !cfg->currentBB() || cfg->currentBB()->terminator() )
            {







>
|







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
        {
            auto& dm = DiagnosticsManager::GetInstance();

            auto level = GetBreakableScopeLevels( p.context() );

            if( p.isInParenExpr() || !level )
            {
                dm.emitSyntaxErrorMessage(
                    locationId, "the break statement is not allowed here.", 0 );
                return false;
            }

            auto cfg = GetCFG( p.context() );

            if( !cfg->currentBB() || cfg->currentBB()->terminator() )
            {
37
38
39
40
41
42
43
44

            cfg->currentBB()->setTerminator( cir::Break( level ) );
            return true;
        };

        RegisterRule( e, "break"_sid, Rule( handleBreak ) );
    }
}







|
38
39
40
41
42
43
44
45

            cfg->currentBB()->setTerminator( cir::Break( level ) );
            return true;
        };

        RegisterRule( e, "break"_sid, Rule( handleBreak ) );
    }
} // namespace goose::builtins