3 ms·
> Implementation Defined behavior means the standards authors provided a list of possible behaviors The standard definitely does not require implementations to
by aw1621107 3y ago
> Implementation Defined behavior means the standards authors provided a list of possible behaviors
The standard definitely does not require implementations to pick from a list of possible behaviors. All the standard requires is that the implementation document the behavior.
For example, the behavior on integer demotion is implementation-defined and there's no list of possible behaviors:
> When an integer is demoted to a signed integer with smaller size, or an unsigned integer is converted to its corresponding signed integer, if the value cannot be represented the result is implementation-defined.
> Unspecified behavior is more what you're thinking of, though in that case the standard still provides a list of possibilities that compiler authors have to pick from
That contradicts the standard's definition of unspecified behavior. For example, from the C89 draft (emphasis added) [0]:
> Unspecified behavior --- behavior, for a correct program construct and correct data, for which the Standard imposes no requirements.
[0]: https://port70.net/%7Ensz/c/c89/c89-draft.html#1.6sd https://port70.net/%7Ensz/c/c89/c89-draft.html#1.6sd