Document number: WG14 N745 (J11/97-108) Title: Draft 11Pre1 Edit Issues List Authors: Jim Thomas, Tom Robinson, Douglas Walls, J. Benito Date: 08 Aug 1997 N602 (10/96) strtoimax() & strtoumax() functions Approved with changes detailed in the 10/96 Toronto minutes Not Done, cover letter to c9x D11 indicated this was completed. N587 (02/97) Proposed wording for bool Approved with changes detailed in the 02/97, Kona minutes Not Done N611 (10/96) Addition of predefined identifier __func__ Approved with changes detailed in the 10/96 Toronto minutes. Not Done N655 (02/97) N504 and N643 (C9X Draft 8) fpos_t change incorrectly applied to FILE Completed correctly. N671 (06/97) va_copy proposal Applied with errors N673 (06/97) adjustments to phases of translation Applied with errors N675 (06/97) Changes related to DRs 77, 143, 144, 146, 147, and 149 Applied with errors N683 (06/97) Final Edits for incorportating VLA's into C9X Approved as amended by the 06/97, London minutes Applied with errors N685 (06/97) Compatibility Issues with Union Members. Applied with an error N686 (06/97) Obsolescent Features of the C Standard Applied correctly N688 (06/97) Namespace issues - future directions Applied with an error N691 (06/97) Representation of values Approved as amended by the 06/97, London minutes Applied with errors N692 (06/97) Implicit int cleanup Applied correctly N693 (06/97) Type-Generic Math Functions Applied with errors N694 (06/97) Floating-Point & Complex Arithmetic Enhancements Applied with errors N695 (06/97) Grammar Start Symbol Applied with errors N696 (06/97) Standard pragmas Applied with errors N698 (06/97) Implementation Defined Integral Types Applied with errors N701 (06/97) vscanf Approved as amended by the 06/97, London minutes Applied with errors N703 (06/97) ungetc Applied correctly N705 (06/97) Defect Reports since TC2 that promise some action in C9X Approved DR 145, 150, 155, 158 & 162 as amended by the 06/97, London minutes Approved DR 160 as is DR 150, 155, 158, 160 applied correctly. DR 145 & 162 applied with errors. N707 (06/97) Varargs for function-like macros Applied with errors N717 (06/97) Extended Identifiers Approved as amdended by the 08/97, London minutes Applied with errors N721 (06/97) Unary * operator Approved as amdended by the 08/97, London minutes Applied with errors N722 (06/97) Removing implicit int Applied with errors N723 (06/97) Changes to shift operators Approved as amended by the 06/97, London minutes Applied with errors N724 (06/97) Minor alteration to representation of types Applied correctly N728 (06/97) scalbn Applied with errors N729 (06/97) Mode strings in fopen() Applied correctly N733 (06/97) New formats for strftime() Applied with errors N734 (06/97) Misc. FP Cleanup Items Applied with errors N736 (06/97) Preprocessor arithmetic Applied correctly N740 (06/97) Mixing declarations and code Applied with errors N741 (06/97) inlining Applied with errors DR142 This change as brought forth in the London minutes was added correctly. --------------------------------CUT HERE--------------------------------------- All references for corrections are to C9X Draft 11-pre1 (pg 3 of TC2, has a change to 6.8.3 pg 89 of c89, that has not been applied) Page 139, 6.8.3 Macro replacement, para #3 Change "may be" to "shall not be". (N631) Page 186, 7.6.4.4 The feupdateenv function, para 3 Change "FENV_ACCESS ON" to "#pragma STDC FENV_ACCESS ON". (N638: items 1,2,4,7) Page 181, 7.6.2.3 The feraiseexcept function, para #1 Interchange the second and third sentences. (N657: items 6,9,11-14) Item 9 is entered correctly. Item 13: Page 447, G.5.1 Multiplicative operators, para #5 Paragraph numbering is strange in that the examples are still in para #5, except for the commentary on the second example which is para #6. Page 450, G.5.1 Multiplicative operators, para #6 (as in draft) Correct indentation of paragraph. Item 14: Page 455, G.6.8 The cexp function, bullet cexp(-inf+iNaN) Correct "is unspecified" to be "are unspecified". Item 6: Page 201, 7.7.6.12 The scalb function, para #2 Correct "implementatiion-defined" to be "implementation-defined". Page 201, 7.7.6.12 The scalb function, para #3 Change "returns" to "returns the value of". (This is an editorial change for consistency.) Page 201, 7.7.6.13 The scalbn function, para #3 Change "returns" to "returns the value of". (This is an editorial change for consistency.) Page 439, F.9.3.12 The scalb function, bullet scalb(+0,y) Correct the typeface of the second "y". Page 439, F.9.3.12 The scalb function, bullet scalb(+inf,y) Correct the typeface of the second "y". Page 425, F.3 Operators and functions Correct "The scalb function ..." to "The scalbn function ...". Page 437, F.9.3.4, The frexp function, para #2 Correct "scalb" to "scalbn". Page 449, G.5.1 Multiplicative operators, example 2 Correct two occurrences of "scalb" to "scalbn". Page 202, 7.7.6.16 The ilogb function, para #3 Correct "exponenet" to be "exponent". Item 11 is entered correctly. Item 12 Page 208, 7.7.9.9 The llround function, para #2 Correct "lroundtol" to be "lround". (N671) va_copy proposal NOTE: Page 234, 7.12.1 states that va_copy "shall be implemented as a macro, not as an actual function." But in the description of va_copy on Page 236, paragraph #2 states, "The va_copy function or macro..." This is as it appears in the proposal. It seems that the words, "function or" should be deleted. Note that the proposal also has in the Returns section, "The va_copy function or macro..." but the draft has, "The va_copy macro..." Also, in other functions in the standard that have no return value, there simply is no Returns section. The va_start, va_end and va_copy macros all heave a Returns section. Shouldn't this be consistent in the standard? (See feclearexcept(), fegetexceptflag(), feraiseexcept(), fegetenv()...) Page 236, 7.12.1.4, Example In the new second example, the word "after" is misspelled "fater". Also in this first sentence has text left out. The draft has, "after the indicated number of arguments; fater f2 has been called again and passed to function f4." The proposal has, "after the indicated number of arguments; after f2 has been called once with the whole list, the trailing part of the list is gathered again and passed to function f4." Page 236, 7.12.1.4, Example The line, "array[ptr_no++] = va_Arg(ap, char *);" has a capital A va_arg() were it should be lower case: "array[ptr_no++] = va_arg(ap, char *);" Page 236, 7.12.1.4, Example The first while loop has its terminating brace backwards "while (ptr_no < n_ptrs) { ... { va_end(ap);" Should be: "while (ptr_no < n_ptrs) { ... } va_end(ap);" (N673) adjustments to phases of translation Page 8, 5.1.1.2, Paragraph #2 The word "empty" is misspelled "empy". Page 8, 5.1.1.2, Footnote 7 The first physical source line is in the draft: "|\" It should be: "|\\\|" Page 8, 5.1.1.2, Footnote 7 The word "backslash" has its "s" and "h" reversed: "backslahs". Page 8, 5.1.1.2, Footnote 7 The first logical source line is in the draft: "|\|" It should be: "|\\|" (N675) Changes related to DRs 77, 143, 144, 146, 147, and 149 NOTE the paragraph numbers are messed up in section 6.1.2.4, see page 31, paragraph 3 is missing. Page 31, 6.1.2.4, Paragraph #2 The change to the last sentence of this paragraph did not happen. The proposal says, "In subclause 6.1.2.4, change the last sentence of paragraph #2 to: The object exists, has a constant address, and retains its last-stored value throughout the execution of the entire program.(*)" But the draft still has the original sentence: "The object exists and retains its last-stored value throughout the execution of the entire program.(*)" Page 32, 6.1.2.4, Paragraph #3(mislabeled as #4) The addition to this paragraph did not happen. The proposal says, "Add to the end of paragraph #3: During execution of the associated block, the object has a constant address." Page 311, 7.14.3.4, Paragraph #3 The word "equal" is misspelled as "euqal". DR 143 in this proposal was changed by N729. This proposal was not reviewed here. The rest of the changes that resulted from these DRs were incorporated correctly. (N683) VLA The stage 3 document was N637 General Problem: All examples with comments would benefit by lining up the comments with tabs. Detailed Problems: Correct all the forward references to "variably modified (6.5.4)" and "variable length array (6.5.4.2)" to be "variably modified (6.5.5)" and "variable length array (6.5.5.2)" respectively. List of places where one or both must be corrected: Page 32, 6.1.2.4 Storage duration of objects Page 69, 6.3.3.4 The sizeof operator Page 84, 6.4 Constant expressions Page 102, 6.5.5 Declarators Page 36, 6.1.2.6, Compatible type and composite type, para #3, first bullet: Correct "IF" to "If". Page 69, 6.3.3.4 The sizeof operator, example #3 Correct "main ()" to be "int main()". Correct the function main to have a "return 0;". Page 73, Clause 6.3.6, Forward references Clause number for "variable length array" is incorrect. It should be 6.5.5.2. Page 83, Clause 6.4 Paragraph #6 Three problems with this addition. It is now: "have a variable length array type of a parenthesized name of such type," It should be: "have variable length array type or a parenthesized name of such a type," Page 88, 6.5.2 Type specifiers, the example which was to be added to the end of this subclause is missing. Add it, here it is from N683 as amended by the June 97, London meeting minutes: All declarations of variably modified (VM) types must be declared at either block scope or function prototype scope. Array objects declared with the "static" or "extern" storage class specifier cannot have a variable length array (VLA) type. However, a object declared with the "static" storage class specifier can have a VM type (that is, a pointer to a VLA type). Finally, all identifiers declared with a VM type must be ordinary identifiers, and can not, therefore, be members of structures or unions. extern int n; int A[n]; /* Error - file scope VLA */ extern int (*p2)[n]; /* Error - file scope VM */ int B[100]; /* OK - file scope but not VM */ void fvla(int m, int C[m][m]) { /* OK - VLA with prototype scope */ typedef int VLA[m][m]; /* OK - block scope typedef VLA */ /* array size m evaluated now */ struct tag { int (*y)[n]; /* Error - y is not an ordinary identifier */ int z[n]; /* Error - z is not an ordinary identifier */ }; int D[m]; /* OK - auto VLA */ static int E[m]; /* Error - static block scope VLA */ extern int F[m]; /* Error - F has linkage and is a VLA */ int (*s)[m]; /* OK - auto pointer to VLA */ extern int (*r)[m]; /*Error - r has linkage and is a pointer to VLA*/ static int (*q)[m] = &B; /* OK - q is a static block scope pointer to VLA */ /* ... */ } Page 88, Clause 6.5.2, Forward references Change #12 in N683 did not get added. Page 102, Clause 6.5.5, Forward references Clause number for "variable length array" is incorrect. It should be 6.5.5.2. Page 103, Clause 6.5.5.2, Paragraph #2 Correct the spelling of "tyupe" to be "type" There is a sentence missing after the sentence ending with "is not a variable length array type." and before the sentence that starts with "If the size expression" That missing sentence is supposed to be: "Otherwise, the array type is a variable length array type." Page 103, Clause 6.5.5.2, Paragraph #2 The sentence that starts with "If the size expression", the word "express" should be "expression". Page 104, clause 6.5.5.2, Example 3 The second line has an "8" instead of an "*": int (8p)[4][n+1]; The last comment line should have m==n+1, not m==m+1. Page 106, Clause 6.5.5.3, 1st example The second paragraph has an extraneous "11" preceding it. Page 107, Clause 6.5.5.3, 4th example The comment is missing the word "with". The comment should start on the same line as the assignment: a[i][j] += x; // a is a pointer to a VLA with //n*m+300 elements Page 108, Clause 6.5.7 Paragraph #3 Incorrect reference. "in the way described in 6.5.4." Should be "in the way described in 6.5.5." Page 110, Clause 6.5.7 Example #5 The comment was left out of the example. It should be: typedef int A[n]; /* OK - declared with block scope */ Page 110, Clause 6.5.7 Example #6 There is an extra word "if" in the second sentence. "However, if the..." should be "However, the ..." Page 111, Clause 6.5.7 Example #6 In the // comments, the variable name should be in bold font. Page 111, Clause 6.5.8 Paragraph #3 The sentence that was changed could be reworded so it is less confusing. The current sentence is: "The type of the entity to be initialized shall be an object type that is not a variable length array type, or an array of unknown size." This make it sound as if an array of unknown size cannot be initialized. How about: "The type of the entity to be initialized shall be an array of unknown size or an object type that is not a variable length array type." Page 124, 6.6.6.1, Example #2 The word "objects" is misspelled "oibjects" in the first sentence. Page 230, 7.10.2.1, Example The second and third comments need to have the variable names "a" and "b" in bold font. In function g(), the call to function h() is bungled h9n); Should be h(n); Since the comments were changed to // comments, periods were added. The third comment is missing this period. Page 406, Language Syntax Summary This summary has not been updated! (N685) Third bullet is missing the bullet number. Should read 3. The following is not a valid fragment ... (N688) Page 393, 7.20.3 The last sentence is terminated prematurely. It is missing the text, " may be added to the macros defined in the header". (N696) Page 147, 6.8.6, Paragraph #1 The first paragraph was almost entirely left out and the second paragraph was added in its place. The draft has, "A preprocessing directive of the form # pragma pp-tokens-opt new-line where the preprocessing token STDC does not immediately follow the pragma on the directive, then no macro replacements are performed on the directive, and the directive shall have one of the following forms whose meaning is described elsewhere: " The proposal has: "A preprocessing directive of the form # pragma pp-tokens-opt new-line where the preprocessing token STDC does not immediately follow the pragma on the directive causes the implementation to behave in an implementation-defined manner. Any such pragma that is not recognized by the implementation is ignored. If the preprocessing token STDC does immediately follow the pragma on the directive, then no macro replacements are performed on the directive, and the directive shall have one of the following forms whose meaning is described elsewhere: " (N701) Page 151, 7.1.1, Definitions of terms, para #3, footnote #121 See N701 for the changes to footnote #108 (which is #121 in 11 Pre-1), all the wide char versions of the functions have been left out. Page 269, 7.13.6.12, The vfscanf function, para #2 This paragraph is suppose to end with a reference to footnote #203. Page 269, 7.13.6.13, The vscanf function, para #2 This paragraph is suppose to end with a reference to footnote #203. Page 270, 7.13.6.14, The vsscanf function, para #2 This paragraph is suppose to end with a reference to footnote #203. Page 361, 7.19.2.7, The vfwprintf funcition, footnote 253 Correct the spelling of "vwfscanf" to be "vfwscanf". Change "unspecified" to "indeterminate". Page 364, 7.19.2.x, The vswscanf function, it is missing, obtain it from N701. (N705, DR 145) Page 84, 6.4 Constant expressions, para #9 Change "designator; it" to "designator. It". Change "or implicitly, by the use" to "or implicitly by the use". (N705, DR162) Page 334, 7.16.3, Time conversion functions, para #1 Change "functions return a pointer in one of two static objects" to "functions each return a pointer in one of two types of static objects". (N707) Page 139 6.8.3 Macro replacement paragraph 4 Change number of paramters to number of parameters Page 140 6.8.3 Macro replacement Add to paragraph 10 # define identifier lparen ... ) replacement-list new-line # define identifier lparen identifier-list , ... ) replacement-list new-line Page 140 6.8.3 Macro replacement paragraph 12 Change including any separate comma preprocessing tokens to including any separating comma preprocessing tokens signle itme: to single item: The number of arguments is one more than the number of parameters in the macro definition (excluding the ...). to The number of arguments so combined is such that, following merger, the number of arguments is one more than the number of parameters in the macro definition (excluding the ...). Page 140 6.8.3.1 Argument substitution paragraph 2 Change An idenfifier to An identifier shall be trated to shall be treated Page 146 6.8.3.5 Scope of macro definitions Example 7. Change results in to results in: "X = %d\" to "X = %d\n" (N693) Page 225, 7.9 Type-generic math , para #1 Correct the spelling of "defineds" to "defines" Correct "longdouble" to be "long double". Correct "corrspnding real type and tyupe-domain" to be "corresponding real type and type-domain". Page 225, 7.9.1 Type-generic macros, para #2 Correct "invokles" to be "invokes". Correct "paramters" to be "parameters". Correct "correspinding" to be "corresponding". Page 225, 7.9.1 Type-generic macros, para #3 Correct "anme" to be "name". In the table which follows in the column correct "cfabs" to be "cabs". The last sentence of the paragraph, "The corresponding type-generic macro for fabs and cabs is fabs.", was erroneously moved into a footnote (175). The sentence is not an example but the specification for a case not covered by the general scheme, hence should remain in the main text. Page 225, 7.9.1, footnote 174 Correct "incomparible" to be "incompatible". Page 226, 7.9.1 Type-generic macros, para #4 Correct "involes" to be "invokes". Page 226, 7.9.1 Type-generic macros, para #6 Correct "functionl otherwise" to be "function; otherwise". Page 227, 7.9.1 Type-generic macros, para #7 Align the table items. Page 227, 7.9.1 Type-generic macros, para #8 Change "The use of the macro with any real of complex argument" to "Use of the macro with any real or complex argument". Page 227, 7.9.1 Type-generic macros, para #9 Correct "shouwn" to be "shown". Correct "enxtafterx(f, ld)" to be "nextafterx(f, ld)". Add an entry to the table, just after the nextafterx entry: copysign(n, ld) copysignl(n, ld) P457, G.7 , para #1 Correct the first word of the second sentence from "if" to be "If". P457, G.7 , para #2 Add space before the list/table. Line up the LHS's, "=" signs, and RHS's in the list. Correct "cost(i*y)" to be "cosh(i*y)". Correct "asign" to be "asin". (N694) The edits in enhancements 1 and 2 are missing entirely. Page 431, F.8.2, 0 * x --> 0.0 bullet Replace "negative" with "negative-signed". (The proposal said "-0", which is narrower than need be; "negative" I assume was an editor change to correct this, but might not be interpreted to include -0; "negative-signed" is a better correction that is unambiguous and consistent with wording elsewhere.) The edits in enhancement 4 are missing, except for the amendment from the meeting. Page 188, 7.7 [7] Mathematics Replace "multiple" with "multiply". The edits in enhancements 1 and 2 are missing entirely. Page 431, F.8.2, 0 * x --> 0.0 bullet Replace "negative" with "negative-signed". (The proposal said "-0", which is narrower than need be; "negative" I assume was an editor change to correct this, but might not be interpreted to include -0; "negative-signed" is a better correction that is unambiguous and consistent with wording elsewhere.) The edits in enhancement 4 are missing, except for the amendment from the meeting. Page 188, 7.7 [7] Mathematics Replace "multiple" with "multiply". (N691) Page 37, 6.1.2.7.1, General, para #1 Correct "refersented" to be "represented". Page 38, 6.1.2.7.1, General, para #5 Correct "beome" to be "become". Page 38, 6.1.2.7.1, General, add missing last paragraph from N691: Where an operator is applied to a value whose object representation includes padding bits but which is not a trap representation, the operator shall ignore those bits for the purpose of determining the value of the result. If the result is stored in an object that has padding bits, it is unspecified how those padding bits are generated - they might not be related to the padding bits of the operands - but a trap representation shall not be generated. Page 38, 6.1.2.7.2, Integral types, para #2 Correct "bit it one" to "bit is one". (N695) Page 8 5.1.1.2 Translation phase, Paragraph 1 Change a preprocessing translation is called to a preprocessing translation unit is called Page 2 Clause 3, Paragraph 2, sentence 2 Replase with Other terms are defined where they appear in italic type or by being on the left side of a syntax rule. (N721) Page 66 6.3.3.2 Address and indirection operators, Paragraph 1 Change shall be a function designator the result to shall be a function designator, the result Page 66 6.3.3.2 Address and indirection operators, Paragraph 3 Change nor the & operare to nor the & operator Page 67 6.3.3.2 Address and indirection operators, Footnote 64 Change pointyer to pointer Page 72 6.3.6 Additive operators, Paragraph 8 - last sentence Change operand of the unary * operator to operand of a unary * operator (N722) Page 131, 6.7.1 Function definitions, Example 2 The change to the example was not applied. Change g(int (*funcp)(void)) to void g(int (*funcp)(void)) g(int func(void)) go void g(int func(void)) (N723) Page 73, 6.3.7, Bitwise shift operators, para #4 Correct "if E1 has type or LLONG_MAX" to be "if E1 has type long int), or LLONG_MAX". (N717) Problems: Page 9, 5.1.1.2 Paragraph #2 The first sentence is not as given in the proposal. The proposal states: "A universal-character-name shall not specify a character short identifier in the range 0000 through 0020 or 007F through 009F, inclusive." But the draft has: "A universal-character-name shall not specify a hexadecimal value less than 0x20 or in the range 0x7F to 0x9F inclusive. Page 28, 6.1.2 Paragraph #2 The reference to ISO 10646 differs from what is in N717: "in ISO 10646-1 falls" The proposal has: "in ISO 10646 falls" Page 28 6.1.2 Footnote The word "forming" is misspelled "formaing". Page 458, Annex H The annex states that it is unchanged from ISO/IEC PDTR 10176, but the code values in the draft do not match those in the proposal. (N728) Page 202, 7.7.6.15 The scalbnl function Remove subclause 7.7.6.15. (It's obsoleted by N728.) Page 226, 7.9.1 [5] Type-generic macros Add scalbln to the list in [5]. (N733) Page 337 7.16.3.5 The strftime function Paragraph #3 Change %T is equivalent to "%H-%M-%S" (the ISO 8601 time format). to %T is equivalent to "%H:%M:%S" (the ISO 8601 time format). (N734) Page 304, 7.14.1.5 [10] The strtod function Append to the last sentence in [10]: "; whether errno acquires the value ERANGE is implementation defined." Page 371, 7.19.4.1.1 [10] The wcstod function Append to the last sentence in [10]: "; whether errno acquires the value ERANGE is implementation defined." (N740) Page 119 6.6.2 Paragraph #2 The last sentence of this paragraph is: "within each declaration in the order their declarators appear in the translation unit." This should be: "within each declaration in the order that the declarators appear." Page 123 6.6.5.3 Paragraph #2 The word "ause-1" is missing a leading "cl". -> "clause-1" Also, the word "can" in the proposal is "may" in the draft. Also, the wording in the proposal was changed in the second sentence. The proposal has, "If either or both are an expression, they are evaluated as a void expression." The draft has, "Each is evaluated as a void expression." Page 123, 6.6.5.3 Footnote 106 The first part of the footnote has words that were left out. The draft has, "106. Thus, clause-1 specifies initialization for the loop;" This is supposed to be: "106. Thus, clause-1 specifies initialization for the loop, possibly declaring one or more variables for use in the loop;" (N741) Page 99-100. 6.5.4 In the text on these two pages, the word "inline" should be in bold font (as all keywords are). Page 99, 6.5.4 Paragraph #6 This line is the first line of the Semantics section in the proposal. But the draft has moved it to be the last line of the Constraints section. "The inline function specifier shall not appear in a declaration of main." Page 99, 6.5.4 Paragraph #7 second sentence The sentence and the associated footnote were altered from what is in the proposal. The proposal has: "Making a function an inline function suggests that calls to the function be as fast as possible (by, for example, using an alternative to the usual function call mechanism known as ''inline substitution''.94 ... 94. Inline substitution is not ..." The draft has: "Making a function an inline functon suggests that calls to the function be as fast as possible94 ... 94. By using, for example, an alternative to the usual function call mechanism known as ''inline substitution''. Inline substitution is no ..." Page 99, 6.5.4 Footnote #94 Note that the footnote in the draft has "is no textual" and it is in the proposal as "is not textual". Page 99, 6.5.4 Footnote #94 The London minutes say that "within the function" is to be changed to "within the body of the function". This change did not happen: "expansion of a macro used within the function uses the.." Page 100, 6.5.4 Paragraph #8 The first sentence starts incorrectly; "An function" should be "Any function. The fifth sentence has the word "an" repeated. The sixth sentence has an entire line of text missing. "an alternative to implement and call to the function..." but the proposal has: "an alternative to an external definition, which a translator may use to implement any call to the function..." Notive the word "and" in the draft should be "any". Page 100, 6.5.4 Example The last comment, "A translator may perform inline substitution" would like nicer if it were all on one line, as in the proposal. (N698) Page 33, 6.1.2.5, Paragraph #5 The London minutes indicate that the last sentence of this paragraph become a new paragraph. This did not happen. Page 34, 6.1.2.5, Paragraph #17 The London minutes indicate this sentence should be: "..bits it uses to represent values excluding any sign and padding bits." but the draft has: "..bits it uses to represent values excluding the sign bit (if any) and any padding bits." Page 52, 6.2.1.1 Paragraph #1 In the forth bullet, the word "which" is misspelled "wchi". Page 53, 6.2.1.1 Paragraph #2 The first line of this page has the hyphenated word "bit-field" misspelled "but-field". Page 53, 6.2.1.1 Paragraph #3 The word "arithmetic" was added in this sentence. It is not in the proposal and is not called out in the minutes. Page 55, 6.2.1.7, Paragraph #1 The sentence that starts "Then the following rules are.." is not complete in the draft. The proposal has: "Then the following rules are applied to the promoted operands" but the draft has the last three words left out. (Misc) Page 31, 6.1.2.4, Storage duration of objects, paragraphs are numbered 1, 2, 4. Paragraph 4 should be numbered 3. Pages 34/35, footnote 31 split across these two pages, should be on one page. Page 267, footnote 203 is on the wrong page, it should be on page 266. The following tables/formulas need work: Page 446, G.5.1 Multiplicative operators, para #2 and para #3 Page 450, G.5.2 Additive operators, para #2 Page 451, G6 , para #6 and para #7 Page 201, 7.7.6.11 The logb function, para #2 Correct the type face for "logb" in the formula. Page 202, 7.7.6.14 The scalbln function, para #2 Correct "fucntion" to be "function". Page 208, 7.7.9.9 The llround function, para #2 Correct "equivalent to the lroundtol function" to "equivalent to the lround function"