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