master
 1test "@setRuntimeSafety" {
 2    // The builtin applies to the scope that it is called in. So here, integer overflow
 3    // will not be caught in ReleaseFast and ReleaseSmall modes:
 4    // var x: u8 = 255;
 5    // x += 1; // Unchecked Illegal Behavior in ReleaseFast/ReleaseSmall modes.
 6    {
 7        // However this block has safety enabled, so safety checks happen here,
 8        // even in ReleaseFast and ReleaseSmall modes.
 9        @setRuntimeSafety(true);
10        var x: u8 = 255;
11        x += 1;
12
13        {
14            // The value can be overridden at any scope. So here integer overflow
15            // would not be caught in any build mode.
16            @setRuntimeSafety(false);
17            // var x: u8 = 255;
18            // x += 1; // Unchecked Illegal Behavior in all build modes.
19        }
20    }
21}
22
23// test_safety=integer overflow
24// optimize=ReleaseFast