- Was EWG informed that the proposal can be understood as
introducing new core language undefined behaviour for
existing programs with identifiers in NFC form where the
concatenation is not in NFC form ([cpp.concat])? I note that
R1 of the paper was not clear on that point and R2 does not
identify it as a consideration.
I don't recall discussing this in EWG, but I believe it was
discussed at some point and the conclusion was that an identifier
not in NFC form resulting from such concatenation was ill-formed.
Can you elaborate as to how the UB manifests?
The typical manifestation of the UB in cpp.concat that does not produce a diagnostic for the case in question is that the concatenation may instead leave the operand tokens behind. That is, the ill-formed result is not required to manifest.
Per our new process with SG12, we need to document and add rationale to any new UB. Let's make sure that's in the proposal.
Given the amount of (small but important) feedback so far, I'm not going to forward the paper directly to Core under our "tentative ready" process. We'll re-discuss in EWG, so please make sure all changes and discussions since last meeting are documented in the paper.