← board

C expression result-type model: ! width, shift result type, hex-constant typing

Failing tests

Root cause family

cfront types intermediate results too wide (64-bit) / ignores the C constant-type ladder (decimal vs hex, int → unsigned int → long ...) and integer-promotion result types for !, ~, <<, comparisons.

Gate

Drop 00104.c/00178.c/00200.c from test/c-conformance/pxx.skip; runner green. Sweep note: same model feeds sizeof, so check sizeof-of-expression paths after fix.

Update 2026-07-07

00178 (sizeof of a general non-ident expression) FIXED (commit 827cddfc). Remaining:

Log