You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describing the observable behavior of programs with undefined behavior is significantly complicated by the possibility of losing volatile operations. This distinction from C23 necessitates a new, obscure library function (std::observable_checkpoint) that is specific to the volatile case; there is moreover no evidence that it would actually change the behavior of any implementation. SG23 strongly recommended that something equivalent to the C23 rule be adopted, and EWG failed to reach consensus for that direction by the narrowest of margins.
Proposed change:
Confirm with users of volatile that there is no need for aggressive optimization (apparently beyond current techniques) of volatile operations preceding a potentially undefined operation; if so, give volatile operations the same status as library I/O functions and simplify the specification accordingly (removing observable_checkpoint in particular).