saqut-compiler/tests/golden/loops
saqut 450f16008f fix(ir): break/continue IR üretimi — döngü bağlamı yığını (B3)
Sorun: break ve continue için hiçbir opcode üretilmiyordu (TODO).

Düzeltme: her döngüye girerken LoopContext yığına push'lanır, çıkınca
pop'lanır. break/continue JMP -1 yazar, instruction indeksi bağlamda
toplanır. Döngü üretimi bitince tüm pending jump'lar doğru hedefe patch'lenir:
  - break  → her döngü türünde OUT (döngü sonu)
  - continue while/do-while → LOOP_START / COND_LABEL
  - continue for  → C_LABEL (güncelleme başı, koşula DEĞİL)
    (aksi halde i++ atlanır → sonsuz döngü)

İç içe döngülerde yığının en üstü en içteki bağlamdır; inner break/continue
dıştaki döngüyü etkilemez.

Testler (16/16 yeşil):
  - for_break_continue: continue'nun i++'ı atlamadığını kanıtlar
  - while_break_continue: while break/continue
  - nested_break: inner break dış döngüyü etkilemiyor

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 16:09:57 +03:00
..
basic.expected test: golden testler — operatör önceliği, döngüler, folding, DCE 2026-06-18 22:33:19 +03:00
basic.sqt test: golden testler — operatör önceliği, döngüler, folding, DCE 2026-06-18 22:33:19 +03:00
do_while_once.expected test: golden testler — operatör önceliği, döngüler, folding, DCE 2026-06-18 22:33:19 +03:00
do_while_once.sqt test: golden testler — operatör önceliği, döngüler, folding, DCE 2026-06-18 22:33:19 +03:00
do_while_truthy.expected fix(ir): do-while == 1 geçici çözümü kaldırıldı, JIF_TRUE kullanılıyor (B4) 2026-06-19 15:59:15 +03:00
do_while_truthy.sqt fix(ir): do-while == 1 geçici çözümü kaldırıldı, JIF_TRUE kullanılıyor (B4) 2026-06-19 15:59:15 +03:00
for_break_continue.expected fix(ir): break/continue IR üretimi — döngü bağlamı yığını (B3) 2026-06-19 16:09:57 +03:00
for_break_continue.sqt fix(ir): break/continue IR üretimi — döngü bağlamı yığını (B3) 2026-06-19 16:09:57 +03:00
nested_break.expected fix(ir): break/continue IR üretimi — döngü bağlamı yığını (B3) 2026-06-19 16:09:57 +03:00
nested_break.sqt fix(ir): break/continue IR üretimi — döngü bağlamı yığını (B3) 2026-06-19 16:09:57 +03:00
while_break_continue.expected fix(ir): break/continue IR üretimi — döngü bağlamı yığını (B3) 2026-06-19 16:09:57 +03:00
while_break_continue.sqt fix(ir): break/continue IR üretimi — döngü bağlamı yığını (B3) 2026-06-19 16:09:57 +03:00