JTC1/SC22/WG14
N745
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) <inttypes.h> 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 <stdbool.h>
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 <inttypes.h> - 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
<inttypes.h> 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 <tgmath.h>, 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 <complex.h> 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 <tgmath.h>, para #1
Correct the first word of the second sentence from "if" to be "If".
P457, G.7 <tgmath.h>, 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 <math.h>
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 <math.h>
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 <complex.h>, 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"