← board

pxx compiler hangs (non-termination) on two valid C programs

Repro

timeout 5 compiler/pascal26 -Ilib/crtl/include -Ilib/crtl/src \
  library_candidates/gcc-torture/execute/pr44164.c /tmp/x   # exit 124 = HANG (24 lines)
timeout 5 compiler/pascal26 -Ilib/crtl/include -Ilib/crtl/src \
  library_candidates/gcc-torture/execute/pr23324.c /tmp/x   # exit 124 = HANG (133 lines)

Both: pxx exit=124 (killed by timeout, running at 100% CPU); gcc -w -c <f> compiles each in <1s. No diagnostic, no partial output — pure non-termination.

Leads (reduction started, NOT isolated — that's the fix)

Why it matters beyond these two files

A compiler that can non-terminate on valid input is a latent hazard for every corpus and the self-host gate. The watcher now guards against a stall (compile timeout in the harvest; testmgr's per-job timeout catches it in tiers), but the underlying non-termination should be fixed, not just timed out around.

Acceptance

Both files compile in bounded time under pxx (match gcc's sub-second); a minimal reduced repro is added as a test/ regression; if the two have distinct root causes, split into two fixes but keep this ticket until both terminate.

Log