dan sinclair | 3b4bf19 | 2023-11-23 15:43:43 +0000 | [diff] [blame] | 1 | #include <metal_stdlib> |
| 2 | using namespace metal; |
dan sinclair | f1f381a | 2023-11-22 09:44:15 +0000 | [diff] [blame] | 3 | |
James Price | 73fd374 | 2024-09-03 20:31:37 +0000 | [diff] [blame] | 4 | #define TINT_ISOLATE_UB(VOLATILE_NAME) \ |
| 5 | volatile bool VOLATILE_NAME = true; \ |
| 6 | if (VOLATILE_NAME) |
| 7 | |
dan sinclair | 3b4bf19 | 2023-11-23 15:43:43 +0000 | [diff] [blame] | 8 | int f() { |
| 9 | int i = 0; |
| 10 | { |
James Price | 73fd374 | 2024-09-03 20:31:37 +0000 | [diff] [blame] | 11 | TINT_ISOLATE_UB(tint_volatile_true) while(true) { |
dan sinclair | 3b4bf19 | 2023-11-23 15:43:43 +0000 | [diff] [blame] | 12 | if ((i > 4)) { |
| 13 | return i; |
| 14 | } |
James Price | b5a904c | 2024-06-03 20:48:50 +0000 | [diff] [blame] | 15 | { |
James Price | 2d24558 | 2024-09-04 16:04:34 +0000 | [diff] [blame] | 16 | i = as_type<int>((as_type<uint>(i) + as_type<uint>(1))); |
James Price | 84db15d | 2024-06-18 15:23:55 +0000 | [diff] [blame] | 17 | if ((i == 4)) { break; } |
James Price | b5a904c | 2024-06-03 20:48:50 +0000 | [diff] [blame] | 18 | } |
dan sinclair | 3b4bf19 | 2023-11-23 15:43:43 +0000 | [diff] [blame] | 19 | continue; |
| 20 | } |
| 21 | } |
| 22 | return i; |
| 23 | } |