Spiros said:
I'm changing the title of the thread to something more appropriate.
I don't understand you , what condition ?
The word "so", when used in such a context, refers the most recent
assertion, in this case, your assertion that "paragraph 1 still needs to
explain ...". Thus, my statement "if so" was short for "if paragraph 1
still needs to explain...". The condition of that if statement was
therefore "paragraph 1 still needs to explain ...". So, when I said that
"I did not consider that the condition of that if was actually met",
what that means is "I did not consider it to be true that paragraph 1
still needs to explain ...".
It gets very tedious expanding all those verbal shortcuts, which is
precisely why they were invented (I'm NOT the one who invented them).
Were they really that obscure?
....
Footnote 40 which provides the definition for "pure binary
notation" does not mention trap representations.
Nor does it need to; the existence of 6.2.6.1p5, which does mention
them, is sufficient to exclude them from consideration while judging
whether the definition has been satisfied.
If you could
get trap representations for unsigned integers in the absence of
padding bits the definition of "pure binary notation" would not
be satisfied.
I cannot agree with that flat assertion; and as a flat assertion,
without supporting argument, it provides no basis for further discussion.
....
Footnotes 40 and 45, and section 6.2.6.2p2, just to cite the ones that
came up in your message itself..
... We are mainly disagreeing on the
interpretation of paragraph 2 of 6.2.6.2 which does mention trap
representations.
Yes, it does, but not in a way that limits them to padding bits and
negative zero; those are merely examples, not an exhaustive list of the
possible ways of being a trap representations.
Note by the way the first sentence of footnote 45: "Some
combinations of padding bits might generate trap
representations, for example, if one padding bit is a parity
bit". This refers to signed integers and is identical to the
first sentence of footnote 44 which refers to unsigned integers.
All they had to do to support your interpretation would be to
modify footnote 45 so that it read "... of padding or value bits
...". But they didn't.
That footnote was attached to a statement about padding bits; it was
unnecessary to refer to value bits to make the point that the footnote
makes, and the failure to mention them doesn't render the statement
inapplicable to them, it merely means that it wasn't applied to them.
Is it important that they are defined rather than simply mentioned?
No, you're right. It's not the definition, but the mention, that matters
- but trap representations are both defined by the standard, and
mentioned as a reason why, under certain circumstances, the behavior of
a program is undefined. "Friday the 13th" is neither defined in the
standard (which, as you point out, isn't the relevant issue) nor
identified by it as a reason why program may have undefined behavior.
The behavior of a program can be implicitly undefined "by the omission
of any explicit definition". (4p2) However, not that an explicit
definition must actually be ommitted. The fact that the standard doesn't
mention "Friday the 13th" isn't sufficient to make the behavior of code
run on Friday the 13th undefined; all the definitions in the standard
continue to apply on that date, even if they don't explicitly mention it.
Unlike implicitly undefined behavior, an explicit statement that the
behavior is undefined (such as that provided by 6.2.6.1p5) can and does
cause an equally explicit definition of behavior that would otherwise be
applicable (such as that provided by 6.2.6.2p2) to become irrelevant.
knows what it means. In any case the point of the example is that
there is nothing in the standard to suggest that trap
representations are relevant in the absence of padding bits
You're looking at it backwards. There's no statement in the standard
about padding bits that makes them the only allowed way to form a trap
representation.