Open
Description
The last normative sentence of p1 says :
If any bit in the value representation has an indeterminate value, the object has an indeterminate value; otherwise, if any bit in the value representation has an erroneous value, the object has an erroneous value ([conv.lval]).
But [conv.lval] says nothing about indeterminate or erroneous values. Did that content move somewhere else, or is that xref attached to the wrong sentence?
Sidenote: [conv.lval] was the first place I thought to look for the rules for loading uninitialized memory. It may be nice to drop a breadcrumb from there to [basic.indet], eg by placing a note either before or after the p4 note like:
See also [basic.indet] for handling of reads of indeterminate and erroneous values.
Activity
Eisenwave commentedon Mar 29, 2025
[conv.lval] in the paper had the following new wording for lvalue-to-rvalue conversion:
As we've later discovered, this UB can happen without erroneous values, and we now have https://eel.is/c++draft/conv.lval#3.4 in that place.
I think we should add a note which says something like
This would clarify why we're linking to conv.lval in the first place. Otherwise, we should just delete the cross-reference because it's pretty confusing.