README
A "trap value", or "trap representation" for typeT
, is a bit combination
The standard tells us there must be:
There isn't much wiggle room.
Nevertheless there are suggestions that during certain kinds of operations such as loading uninitialised memory or conversions as trap might occur.
Yes, I think an implementation could have a trap representation where trap values could occur as a result of some kind of undefined or unspecified behaviour, including evaluating expressions that involve unspecified/uninitialised values. The actual bit pattern leading to a trap value would be invisible to the implementation.
Such a CPU could have 9 bit bytes where only 8 bits are visible to the compiler and runtime, and the 9th bit is used to detect uninitialised memory, and will trigger a trap if loaded by (unprivileged) instructions.