CD1 is the first Committee Draft of C9X. A Public Comment period has taken place, and the UK submitted several comments to it. WG14 subsequently responded to these comments. This page lists all UK-sponsored comments, showing the official ISO numbers, and the responses.
For those wanting to read the whole lot offline, here is the Full Monty - all the non-withdrawn comments in plain or zipped form.
The "resolution" column uses the following terms:
Adopted: WG14 adopted the proposal, possibly in a different place or with slightly different wording (also note that CD1 and CD2 have different subclause numbering) and it appears in CD2. |
Resolved: the author is willing to accept the relevant wording in CD2, whether or not this addresses the exact comment. |
Outstanding: there has been no relevant change between CD1 and CD2, and the author intends to resubmit the comment. |
Irrelevant response: the formal response from WG14 is irrelevant and does not address the issue raised or the question asked. The author intends to resubmit, or has resubmitted, the comment. |
N123 item 4: the comment has been resubmitted in that document and item. |
Number | Author | Title | Subclause | WG14 | Resolution |
---|---|---|---|---|---|
UK0001 | CDWF | Errors in applying working papers to CD1 | various | EY | Adopted except:
|
UK0002 | CDWF | Padding in unions - wording adjustment | 6.5.2.1 | EY | Adopted. |
UK0003 | CDWF | Adjustment to permitted incompatible argument types | 6.3.2.2 | NI | First part now N847 item 19, second part resolved. |
UK0004 | CDWF | Shift operators - wording tidy up | 6.3.7 | EY | Adopted. |
UK0005 | CDWF | Make #error have the desired effect | 3.18, 6.8.5 | Y | Adopted, but placed in clause 4. |
UK0006 | CDWF | Clarification concerning overlapping string literals | 6.1.4 | EY | Adopted. |
UK0007 | CDWF | Problem with restrict and string literals | 6.5.3.1 | DA | Irrelevant response fixed the particular case of fopen but not the general problem. N847 item 23 |
UK0008 | CDWF | The definition of normative text should be normative. | Introduction, 1 | AL | Resolved. |
UK0009 | CDWF | Lacuna in strftime() %z | 7.16.3.6 | EY | Adopted. |
UK0010 | CDWF | _NO_LEAP_SECONDS should require a sensible value | 7.16.1 | Y | Adopted. |
UK0011 | CDWF | require a type for _NO_LEAP_SECONDS and _LOCALTIME. | 7.16.1 | Y | Adopted. |
UK0012 | CDWF | Fix definition of "broken-down time". | 7.16.1 | AL | Resolved. |
UK0013 | CDWF | Cleanup of flexible array structure members. | 6.1.2.5, 6.5.2.1 | Y | Adopted. |
UK0014 | CDWF | problems with initializing unsigned char arrays. | 6.5.8 | NC | N847 item 28. |
UK0015 | CDWF | ensure int can hold all characters and EOF | 5.2.4.2.1 | N | N847 item 5. |
UK0016 | CDWF | eliminate conditional keywords | 6.1.1 | DA | Resolved. |
UK0017 | CDWF | fix pointer comparison | 6.3.9 | Y | Adopted but with some wording changes. Minor adjustments in N847 item 21. |
UK0018 | CDWF | merge predefined identifiers into one place | 6.1.2.7, 6.3.1.1 | AL | Adopted. |
UK0019 | CDWF | handling of characters not in the execution character set | 5.1.1.2, 6.3.1.1 | SD | Resolved. |
UK0020 | CDWF | Adjust wording of footnote 2 | 4 | AL | Adopted. |
UK0021 | CDWF | Further requirements on the conformance documentation | 4 | NC | N847 item 1. |
UK0022 | CDWF | Translation phase 6 is inconsistent | 5.1.1.2 | AL | Resolved. |
UK0023 | CDWF | Removing implicit int, further lacunae | 6.5.2.1, 6.5.6 | EY | Resolved. |
UK0024 | CDWF | Replace footnote 25 | 6.1.2.5 | CE | N847 item 12. |
UK0025 | CDWF | clarify the explanation of the types of an integer constant | 6.1.3.2 | AL | Resolved. |
UK0026 | CDWF | improve the example of character string literals | 6.1.4 | EN | N847 item 16. |
UK0027 | CDWF | inconsistencies in use of "basic" and "extended" character sets | several | E | N847 item 4. Though this is marked as accepted no change has been made to the draft. |
UK0028 | CDWF | clarify translation limit for identifiers using UCNs. | 5.2.4.1 | AL | Resolved. |
UK0029 | CDWF | clarify rounding to nearest | 5.2.4.2.2 | CE | Resolved. |
UK0030 | CDWF | Require UCNs to appear in translation phase 1 | 5.1.1.2 | SD | Resolved. |
UK0031 | CDWF | make ispunct() true for basic punctuation characters | 7.3.1.9, 7.18.2.1.9 | NC | Rejected, possibly on a misunderstanding. Rewritten as N847 item 40. |
UK0032 | CDWF | tidy-up specification of overlapping scopes | 6.1.2.1 | EY | Adopted. |
UK0033 | CDWF | Fix wording relating to "number of arguments" | 6.3.2.2 | CE | N847 item 18. |
UK0034 | CDWF | Adjust wording concerning qualifiers on structure members | 6.3.2.3 | AL | Resolved. |
UK0035 | CDWF | Allow increment/decrement of complex objects | 6.3.2.4, 6.3.3.1 | AN | Resolved. |
UK0036 | CDWF | Define the result of the assignment operator | 6.3.16 | NC | N847 item 17. |
UK0037 | CDWF | Constant expression cannot contain the size of a VLA | 6.4 | AL | Resolved. |
UK0038 | CDWF | UCNs should not be permitted in preprocessing numbers | 6.1.8 | N | Resolved. Allowing UCNs means that ## can be used to create identifiers containing them. |
UK0039 | CDWF | Allow 'i' suffix for floating constants | 6.1.3.1 | AN | Resolved. Complex types are not required in freestanding implementations. |
UK0040 | CDWF | Bitfields of non-standard types should require a diagnostic. | 6.5.2.1 | N | N847 item 22. The response suggests that a diagnostic should not be required because this is a common extension. The resumbitted proposal allows for that. |
UK0041 | CDWF | An example uses an incomplete type in the wrong context | 6.5.2.2, 6.5.2.3 | EY | Adopted. |
UK0042 | CDWF | Clarify some aspects of inline | 6.5.4 | CE | N847 items 24 and 25. |
UK0043 | CDWF | Clarify when VLA sizes are determined | 6.5.7 | - | Withdrawn, see PC-UK0168 |
UK0044 | CDWF | Removal of implicit int - further lacunae | 6.5.7 | E | Adopted. |
UK0045 | CDWF | Fix semantics of jumps in relation to VLAs | 6.1.2.4, 6.6.4.2, 6.6.6.1 | - | Withdrawn, see PC-UK0077 |
UK0046 | CDWF | Correct ranges of bitfields in an example | 6.5.7 | CE | N847 item 27. |
UK0047 | CDWF | Handling of unknown preprocessing directives | 6.8 | CE | The original comment was unclear and has been resubmitted as N847 item 6. |
UK0048 | CDWF | Problems with UCNs in header file names | 6.1.7, 6.8.2 | SD | Resolved. |
UK0049 | CDWF | Handling of UCNs in character constants in #if directives | 6.8.1 | SD | N847 item 7. |
UK0050 | CDWF | Effects on other members of assigning to a union member | 6.1.2.8.1, 6.3.2.3 | M | N847 item 13. The response misunderstands the issues. |
UK0051 | CDWF | true and false are not reserved identifiers | 7.1.7 | SD | Resolved. |
UK0052 | CDWF | Add a __VA_COUNT__ facility for varargs macros | 6.8.3 | NC | N847 item 9. |
UK0053 | CDWF | Require consistency if an implementation adds to <inttypes.h> | 7.4 | NC | Outstanding. |
UK0054 | CDWF | Require that __cplusplus not be defined | 6.8.8 | II | N847 item 10. This was a WG14 consensus item at the Menlo Park meeting. |
UK0055 | CDWF | It should be explicitly possible to redefine I | 7.8 | AL | Adopted. |
UK0056 | CDWF | Add a symbol giving the maximum alignment | 7.1.6 | NC | Outstanding, but only the basic item was resubmitted as N847 item 30. |
UK0057 | CDWF | Better locale handling for wide oriented streams | 7.13.2, 7.13.3, 7.19.3.10, 7.19.7 | NC | N847 item 32. |
UK0058 | CDWF | Unclear how many times tmpfile() can be called. | 7.13.4.3 | NC | N847 item 33. |
UK0059 | CDWF | Add a description of the start symbol to the preprocessing grammar | 6.8 | AL | Resolved. |
UK0060 | CDWF | Clarify multiple insertions of <assert.h> | 7.2 | EY | Adopted. |
UK0061 | CDWF | Explicitly allow assert on non-integer arguments | 7.2.1 | AL | Irrelevant response which has actually made things worse. Now N847 item 36. |
UK0062 | CDWF | Provide a way to make the standard streams binary | 7.13.3, 7.13.5.4 | Y | Adopted. |
UK0063 | CDWF | Provide a way to compare fpos_t values. | 7.13.9 | NC | N847 item 35. |
UK0064 | CDWF | Clarify the actions of fread and fwrite | 7.13.8.1, 7.13.8.2 | CE | N847 item 34. |
UK0065 | CDWF | What is the precision of floating point calculations ? | various | Q | Resolved. See discussion in N829. |
UK0066 | CDWF | The term "access" is not well defined. | various | E | Some changes in this area have been made. A revised version submitted as N847 item 43. |
UK0067 | CDWF | tidy up definitions of <stdlib.h> macros | 7.14 | E | N847 item 37. |
UK0068 | CDWF | Change the description of div() to show consistency | 7.14.6.2 | AL | Resolved. |
UK0069 | CDWF | Reorganise annex G as two separate items | Annex G | AN | Resolved. WG14 believe there are technical problems with doing this. |
UK0070 | CDWF | Type-generic macros should be generally useful | 7.9 | AN | The author is waiting for a proper response to this comment. N847 item 38. |
UK0071 | CDWF | Clarify included file process | 6.8.2 | CE | N847 item 8. |
UK0072 | CDWF | _exit function | 7.11.1.1, 7.14.4 | AN | N847 item 29. WG14 claim this is incompatible with POSIX. |
UK0073 | CDWF | clarify order of evaluation of expressions within full declarators | 6.5.5 | CE | Resolved. |
UK0074 | CDWF | a pointer to an object should point to its first byte | 6.2.2.3 | EY | Adopted. |
UK0075 | CDWF | problems with UCNs | various | SD | Resolved. |
UK0076 | CDWF | Alternate forms of main() are not well-enough defined | 5.1.2.2.1, 5.1.2.2.3 | EY | Resolved. |
UK0077 | CDWF | Fix semantics of jumps in relation to VLAs | 6.1.2.4, 6.6.4.2, 6.6.6.1, 7.10.2.1 | Y | Adopted. |
UK0078 | NMM | Universal character name handling | 5.1.1.2, 5.2.1 | SD | |
UK0079 | NMM | Source line splicing | 5.1.1.2 | NC | |
UK0080 | NMM | Universal character names and #include | 5.1.1.2 | SD | |
UK0081 | NMM | Universal character names and character constants | 5.1.1.2, 6.1.3.4, 6.1.4, Annex B | Y | |
UK0082 | NMM | Source character set values | 5.2.1 | NC | |
UK0083 | NMM | Multibyte characters and C89/C9X changes | 5.2.1.2 | SD | |
UK0084 | NMM | Identifier lengths | 6.1.2 | SD | |
UK0085 | NMM | The escape character | 5.2.2, 6.1.3.4 | NC | |
UK0086 | NMM | Invalid but skipped pre-processor directives | 6.8.1 | CE | |
UK0087 | NMM | Macros for format specifiers | 7.4.4 | AL | |
UK0088 | NMM | Direct input/output functions | 7.13.8 | NC | |
UK0089 | NMM | Requiring line buffering on stderr | 7.13.3 | M | WG14 state that there are intentionally no semantics for buffering. |
UK0090 | NMM | Determining whether a stream is interactive | 7.13.5 | NC | |
UK0091 | NMM | Truncating a file | 7.13.5 | DI | |
UK0092 | NMM | Hard I/O errors and EOF | 7.13.9.2, 7.13.9.3, 7.13.9.5, 7.13.10.1 | M | WG14: the implementation can use its own indicator driven from the underlying one to obtain the required semantics. |
UK0093 | NMM | I/O error diagnosis function | 7.13.10 | LU | |
UK0094 | NMM | The srand function | 7.14.2.2 | NC | |
UK0095 | NMM | BCPL muldiv for multi-precision arithmetic | 7.14.6 | LU | |
UK0096 | NMM | Signal handlers and signal classes | 7.11.1.1 | NC | |
UK0097 | NMM | Reliable signal handling | 5.1.2, 7.11 | NC | |
UK0098 | NMM | Compliance footnote | 4 | NC | |
UK0099 | NMM | Program termination | 5.1.2.2.3 | Y | @@@@Improper termination of main returns an unspecified status. |
UK0100 | NMM | Cross-reference error | 6.1.2 | EY | Resolved. |
UK0101 | NMM | Linkages of identifiers | 6.1.2.2 | AL | Resolved. |
UK0102 | NMM | Linkages of identifiers | 6.1.2.2 | BC | Resolved, but need to ensure Rationale is updated. |
UK0103 | NMM | Array subscripting example | 6.3.2.1 | EY | Resolved. |
UK0104 | NMM | Additive operators wording | 6.3.6 | AL | Resolved. |
UK0105 | NMM | Structure and union specifiers | 6.5.2.1 | Q | Resolved. |
UK0106 | NMM | Function specifiers | 6.5.4 | M | Outstanding. |
UK0107 | NMM | Variably modified array declarators | 6.5.5.2 | EY | Resolved. |
UK0108 | NMM | Ill-definition in array declarators | 6.5.5.2 | NC | |
UK0109 | NMM | Constraints on the return statement | 6.6.6.4 | EY | Resolved. |
UK0110 | NMM | Example of the return statement | 6.6.6.4 | E | Outstanding: the change made is not an improvement. |
UK0111 | NMM | Clarification of function definitions | 6.7.1 | NC | Outstanding: the change made is not an improvement. |
UK0112 | NMM | Symbol providing alignment of objects | 7.1.6 | NC | |
UK0113 | NMM | Ambiguity in macros for integer constants | 7.4.3 | NC | |
UK0114 | NMM | Ambiguity in multibyte character functions | 7.14.7, 7.18, 7.19 | RS | |
UK0115 | NMM | Ambiguity in the wcstok function | 7.19.4.5.7 | E | |
UK0116 | NMM | Ambiguity in restartable wide/multibyte conversion functions | 7.19.7.3, 7.19.7.4 | NC | |
UK0117 | NMM | Major incompatibility with C89 | 6.1.2.5 | PR | Outstanding. |
UK0118 | NMM | Enhancements to restrict for optimisation | 6.5.3, 6.5.3.1, 6.7.1 | TR | Outstanding. This is a major issue for the UK. |
UK0119 | NMM | Ambiguity in specification of FLT_ROUNDS | 5.2.4.2.2 | Q | Resolved. |
UK0120 | NMM | Rounding in ambiguous cases without IEEE | 5.2.4.2.2 | CE | Irrelevant response. |
UK0121 | NMM | Multiple integer representations and precision | 6.1.2.8.2 | CE | Irrelevant response. |
UK0122 | NMM | Problems with multiple zero representations etc. | 6.1.2.8.2 | NC | Irrelevant response. |
UK0123 | NMM | Hexadecimal floating-point constants | 6.1.3.1 | PR | Resolved. |
UK0124 | NMM | Floating to integer conversion | 6.2.1.3 | Q | |
UK0125 | NMM | Initialisation to zero | 6.5.8, F.7.5 | AL | Partly outstanding. |
UK0126 | NMM | Which functions can raise floating-point exceptions | 7.6 | CE | Irrelevant response. |
UK0127 | NMM | Type of fexcept_t | 7.6 | M | Resolved. |
UK0128 | NMM | Floating-point exception values | 7.6.2 | EY | Resolved. |
UK0129 | NMM | Failure when handling exception flags | 7.6 | N* | |
UK0130 | NMM | fegetround and non-standard rounding modes | 7.6.3.1 | DA | WG14: additional rounding direction macros are permitted. |
UK0131 | NMM | fesetround and feholdexcept return values | 7.6.3.2, 7.6.4.2 | Q | Zero now means success. The example still needs correcting. |
UK0132 | NMM | Obscure wording in fesetround | 7.6.3.2 | EY | Resolved. |
UK0133 | NMM | fesetround is often unimplementable | 7.6.3.2 | N* | |
UK0134 | NMM | fegetenv, fesetenv and feupdateenv are often unimplementable | 7.6.4.1, 7.6.4.3, 7.6.4.4 | N* | |
UK0135 | NMM | feholdexcept is sometimes unimplementable | 7.6.4.2 | N* | |
UK0136 | NMM | Obscure wording about constant arithmetic | 7.7 | AL | Resolved. |
UK0137 | NMM | Allow infinities and NaNs for each precision | 7.7 | N* | |
UK0138 | NMM | Provide IEC 559 required support for signalling NaNs | 7.7, F.2.1, F.3 | N* | Resolved. |
UK0139 | NMM | Ambiguity in specification of FP_FAST_FMA | 7.7 | EY | Resolved. |
UK0140 | NMM | What does "supported by conversion" mean? | 7.7 | SD | Irrelevant response. |
UK0141 | NMM | Which <math.h> functions can set errno | 7.7.1 | CE | Irrelevant response. |
UK0142 | NMM | Extraordinary roundoff error | 7.7.1 | Q | Irrelevant response. |
UK0143 | NMM | <math.h> and floating-point signals | 7.7.1 | N* | |
UK0144 | NMM | Serious confusion in the signbit macro | 7.7.3.2 | CE | Irrelevant response. |
UK0145 | NMM | Efficiency of the ilogb function | 7.7, 7.7.6.14 | PA | Resolved. |
UK0146 | NMM | The remquo function is confusing and hard to implement | 7.7.10.3 | TE | |
UK0147 | NMM | Ambiguity in the copysign function | 7.7.11.1 | TE | Resolved, but need to confirm the Rationale is updated. |
UK0148 | NMM | The nan() function seems pointless and confusing | 7.7.11.2 | M | Resolved. |
UK0149 | NMM | nextafterx() seems pointless and confusing | 7.7.11.4 | CE | Resolved. |
UK0150 | NMM | Mathematically incorrect behaviour of fmax/fmin | 7.7.12.2, 7.7.12.3, F.9.9.2, F.9.9.3 | PR | Resolved. |
UK0151 | NMM | Why mention degrees versus radians? | 7.8.2 | Q | Resolved. |
UK0152 | NMM | Error handling for complex functions | 7.8.2 | N* | |
UK0153 | NMM | carg() is undefined for a complex zero | 7.8.2.19 | N* | |
UK0154 | NMM | Is the cproj function useful? | 7.8.2.22 | N* | Resolved, though response was irrelevant. |
UK0155 | NMM | The status of __STD_IEC_559_COMPLEX__ | Annex F | PR | Irrelevant response. |
UK0156 | NMM | Permitting diagnostics for uncleared exception flags | Annex F | N* | |
UK0157 | NMM | Constant expressions and IEEE | F.7.4 | Q | Resolved. |
UK0158 | NMM | Floating-point exception flags and errno | F.9 | N* | |
UK0159 | NMM | atan2(+-0,+-0) and IEEE | F.9.1.4 | N* | |
UK0160 | NMM | Inconsistent wording in frexp | F.9.3.4 | EY | Resolved. |
UK0161 | NMM | pow(+-inf,+-0) or pow(NaN,+-0) and IEEE | F.9.4.3 | N* | |
UK0162 | NMM | Complex infinities and NaNs | 6.2.1.6 | N* | |
UK0163 | NMM | Imaginary, complex infinities, NaNs and inexact | Annex G, G.3 | N* | |
UK0164 | NMM | Complex multiplicative operators | G.4.1 | AL | |
UK0165 | NMM | Incorrect claims of LIA-1 conformance | H.3.1, H.3.1.2 | NC | Irrelevant response. |
UK0166 | NMM | Indication of failure | 5.1.1.3 | BS | Resolved. |
UK0167 | CDWF | require side effects in VLA declarations to work normally | 6.5.5.2 | AN | N847 item 26. |
UK0168 | CDWF | Clarify when VLA sizes are determined | 6.5.7 | AL | Adopted with different wording. |
UK0169 | CDWF | relax restrictions on the offsetof macro | 7.1.6 | NC | N847 items 11 and 31. |
UK0170 | NMM | Ordering of sequence points | 5.1.2.3 | CE | |
UK0171 | NMM | Ambiguities and traps in VLAs | 6.5.5.2 | N | |
UK0172 | NMM | typedef and VLAs | 6.5.7 | SD | |
UK0173 | NMM | The alloca 'function' | 7.14.3 | N | Resolved. |
The WG14 response codes are as follows:
AD | The request is reflected in the current draft. |
AL | Changes have been made along the lines you suggested. |
AM | This proposal would introduce an undesired ambiguity. |
AN | The Committee has voted against this idea. |
AW | The Standard provides another way to do this. |
AY | The Committee has voted for this idea. |
BC | This proposal would invalidate too much existing source code. |
BD | The Standard reflects the base document in this regard. |
BE | The Standard remedies a deficiency in the base document. |
BS | This concerns matters beyond the scope of IEC/ISO WG14 / NCITS J11. |
CC | This was considered a comment rather than an issue. |
CE | The Committee believes this is clear enough as is. |
CS | Compiler "switches" can produce multiple implementations. |
DA | The Committee chose a different approach to deal with this issue. |
DI | In some cases, this proposal would be difficult to implement. |
E | This was accepted as an editorial change. |
EA | Extensions are allowed in this regard, but they are not required. |
EF | This could not be efficiently implemented on many architectures. |
EI | The facility was based on an existing implementation. |
EL | Adding too many facilities would unduly enlarge the language. |
EN | This proposed editorial change was discussed but not accepted. |
EP | The Standard reflects widespread existing practice in this regard. |
ER | This was accepted as an editorial change to the Rationale. |
ES | This was accepted as an editorial change to the Standard. |
EY | This editorial change has been made. |
FE | The Standard must accommodate anticipated future evolution. |
IF | It was decided to allow implementors freedom in this regard. |
II | This is an issue for the implementor, not the Standard. |
IP | This would impair development of portable source code. |
LU | This was considered to be an invention of limited utility. |
M | This is a misinterpretation of correct wording in the document. |
MC | Existing implementations may indeed not meet Standard criteria. |
N | The Committee discussed this proposal but decided against it. |
N* | The Committee discussed this proposal but decided against it. This comment recommends changes of a scope that would require substantial Committee deliberation of complete written proposals. Although the recommendation might lead to useful enhancements or alternative approaches, the Committee believes that the current specification meets the floating-point objectives noted in the NCEG charter and carried over into J11. |
NB | This does not appear to be based on prior art. |
NC | No change to the existing wording was considered necessary. |
NI | This was not considered an issue requiring action. |
NL | The Committee decided not to have "levels" of the Standard. |
NP | A specific proposal is needed before action can be taken. |
NT | The Standard is not intended to double as a tutorial. |
NU | The Committee didn't understand this proposal as worded. |
OP | The Standard supports a one-pass compilation model. |
PA | This proposal conflicts with too much prior art. |
PC | This proposal would conflict with other portions of the Standard. |
PD | The Standard reflects the result of previous discussion of this issue. |
PO | This proposal would preclude code optimization. |
PR | The Committee has reaffirmed this decision on more than one occasion. |
Q | This was considered a request for information, not an issue. |
QI | Quality of implementation is beyond the scope of the Standard. |
RR | This issue can be resolved by a careful reading of the Rationale. |
RS | This issue can be resolved by a careful reading of the Standard. |
SC | This would run counter to the historical "spirit of C". |
SD | The Committee has made significant changes in this area. |
UC | Such a constraint on implementations was deemed undesirable. |
TE | This proposal contains insurmountable technical errors. |
TR | This is too radical a change to adopt at this stage. |
UF | This proposal would unduly favor a limited class of architectures. |
VA | The Standard must accommodate a variety of architectures. |
VC | The Standard must accommodate a variety of character sets. |
VE | The Standard must accommodate a variety of environments. |
VP | The Standard must accommodate a variety of preprocessing methods. |
WR | The present wording is required for accuracy and completeness. |
Y | This proposal was accepted. |
Back to the Public Comments page. Back to the C page. Back to Clive's home page.