조건부 이동, 이중 destroy, 직접 drop 호출에 대한 실패 fixture를 추가하고 runtime harness와 test-dos.bat를 그에 맞춰 갱신한다. M5는 아직 완료가 아니다. 모든 경로에서 정확히 1회 cleanup, defer/drop의 선언 역순 병합, try 전파 경로 cleanup, MaybeMoved 런타임 live flag, struct drop과 필드 역순 drop, 분기/루프 상태 합류, 누수/이중해제 카운터 harness가 남아 있다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012PQm6oAvWX4Lp3iSN5AHGT
9 lines
150 B
Plaintext
9 lines
150 B
Plaintext
unit m5_bad_conditional;
|
|
|
|
fn take(p: ^i32) -> void { mem.destroy(p); }
|
|
|
|
fn bad(p: ^i32, flag: bool) -> void {
|
|
if flag { take(p); }
|
|
p.^ = 3;
|
|
}
|