Authors: Dave Banham
Date: 2026-05-06
Submitted against: C23
Status: Open
Is it a defect for the standard to suggest that a non-freestanding feature be used for what would otherwise be a core aspect of the standard that a conforming freestanding implementation would be required to implement?
The specific case I came across is in C23 6.3.2.3 "Signed and unsigned integers":
In paragraph 3 it states
Otherwise, the new type is signed and the value cannot be represented in it; either the result is implementation-defined or an implementation-defined signal is raised.
But as the use of signals is optional for a freestanding implementation this creates a potential issue when the underlying hardware raises an exception. Would "trap" be a better word to use rather than "signal"?