Defect Report #032

Submission Date: 10 Dec 92
Submittor: WG14
Source: X3J11/91-036 (Stephen D. Clamage)
Question 1
In subclause 6.4, page 55, line 10, a constraint specifies that a comma operator may not appear in a constant expression (except within the operand of a sizeof operator).
At the end of the same section, page 56, line 1, it says, ``An implementation may accept other forms of constant expressions.''
Does the later statement give a license to relax the earlier constraint? For example, may a conforming implementation accept
int i = (1, 2);
without issuing a diagnostic?
Response
No, a conforming implementation may not accept this example without issuing a diagnostic. Constraint violations always require a diagnostic (subclause 5.1.1.3). The intent of the statement ``An implementation may accept other forms of constant expressions'' (subclause 6.4) is to allow an implementation to accept syntactic forms, such as might be generated by the offsetof macro, that may not otherwise be semantically allowed.

Previous Defect Report < - > Next Defect Report