Files
hakorune/apps/tests/phase286_pattern2_break_no_update_min.hako

36 lines
1.0 KiB
Plaintext
Raw Normal View History

// Phase 286 P3.1: Pattern2 "break without update" minimal fixture
//
// Purpose: Test Pattern2 where break path has NO carrier update
// Expected output: 11
//
// Structure:
// i = 0, sum = 10 // non-zero init to clarify intent
// loop(i < 3) {
// if (i == 1) { break } // NO sum update before break!
// sum = sum + 1 // i==0 only: sum = 11
// i = i + 1
// }
// return sum // expects 11 (value at break point)
//
// Key insight (after_bb PHI):
// - break path: carrier_break = carrier_current (no update)
// - natural exit: carrier_out = carrier_current (from header)
// - after_bb PHI: carrier_out = PHI(header: carrier_current, break_then: carrier_break)
//
// This fixture tests the case where carrier_break == carrier_current
// (i.e., no intermediate update before break)
static box Main {
main() {
local i, sum
i = 0
sum = 10
loop(i < 3) {
if (i == 1) { break }
sum = sum + 1
i = i + 1
}
return sum
}
}