Programming languages C

TECHNICAL CORRIGENDUM 2

Langages de programmation C

RECTIFICATIF TECHNIQUE 2


Technical corrigendum 2 to International Standard ISO/IEC 9899:1990 was prepared by Joint Technical Committee ISO/IEC JTC1, Information Technology.

_________________

Page 6
In subclause 5.1.2.1, page 6, delete:
There are otherwise no reserved external identifiers.
Page 7
In subclause 5.1.2.2.3, page 7, add at the end of the first sentence the footnote:
In accordance with subclause 6.1.2.4, objects with automatic storage duration declared in main will no longer have storage guaranteed to be reserved in the former case even where they would in the latter.
Page 11
In subclause 5.2.1.2, page 11, change the third bullet item:
wherein each sequence of multibyte characters begins in an initial shift state and enters other implementation-defined shift states
to:
wherein each sequence of multibyte characters begins in an initial shift state and enters other locale-specific shift states
Page 22
In subclause 6.1.2.4, page 22, first paragraph, change:
There are two storage durations: static and automatic.
to:
There are three storage durations: static, automatic, and allocated. Allocated storage is described in 7.10.3.
Page 25
In subclause 6.1.2.6, page 25, first paragraph, change:
Moreover, two structure, union, or enumerated types declared in separate translation units are compatible if they have the same number of members, the same member names, and compatible member types; for two structures, the members shall be in the same order; for two structures or unions, the bit-fields shall have the same widths; for two enumerated types, the members shall have the same values.
to:
Moreover, two structure, union, or enumerated types declared in separate translation units are compatible if at least one is an incomplete type or if they have the same number of members, the same member names, and compatible member types; for two complete structure types, the members shall be in the same order; for two complete structure or union types, the bit-fields shall have the same widths; for two enumerated types, the members shall have the same values.
Page 31
In subclause 6.1.4, page 31, change the last paragraph of Semantics (before the Example) from:
Identical string literals of either form need not be distinct. If the program attempts to modify a string literal of either form, the behavior is undefined.
to:
These arrays need not be distinct provided their elements have the appropriate values. If the program attempts to modify such an array, the behavior is undefined.
Page 36
In subclause 6.2.2.1, page 36, change the parenthetic remark in the final sentence of the first paragraph:
(including, recursively, any member of all contained structures or unions)
to:
(including, recursively, any member or element of all contained aggregates or unions)
Page 41
In subclause 6.3.2.2, page 41, second paragraph, change:
If the expression that denotes the called function has a type that includes a prototype, the arguments are implicitly converted, as if by assignment, to the types of the corresponding parameters.
to:
If the expression that denotes the called function has a type that includes a prototype, the arguments are implicitly converted, as if by assignment, to the types of the corresponding parameters, taking the type of each parameter to be the unqualified version of its declared type.
Page 45
In subclause 6.3.4, page 45, change the paragraph under Constraints:
Unless the type name specifies void type, the type name shall specify qualified or unqualified scalar type and the operand shall have scalar type.
to:
Unless the type name specifies a void type, the type name shall specify qualified or unqualified scalar type and the operand shall have scalar type.
Page 61
In subclause 6.5.2.2, page 61, second paragraph of Semantics, change:
Each enumerated type shall be compatible with an integer type; the choice of type is implementation-defined.
to:
Each enumerated type shall be compatible with an integer type. The choice of type is implementation-defined, but shall be capable of representing the values of all the members of the enumeration.
In subclause 6.5.2.2, page 61, append to Semantics:
The enumerated type is complete at the } that terminates the list of enumerator declarations.
Page 72
In subclause 6.5.7, page 72, the penultimate paragraph of Semantics (before Examples), add after the comma:
or fewer characters in a string literal or wide string literal used to initialize an array of known size, and elements of character or wchar_t type
Page 89
In subclause 6.8.3, page 89, change, in both paragraphs 2 and 3:
may be redefined by another #define preprocessing directive provided that
to:
shall not be redefined by another #define preprocessing directive unless
Page 99
In subclause 7.1.7, page 99, insert after the words in parentheses in the second sentence of the first paragraph:
or a type (after promotion) not expected by a function with variable number of arguments
Page 102
In subclause 7.3, page 102, second paragraph, change:
Those functions that have implementation-defined aspects only when not in the "C" locale are noted below.
The term printing character refers to a member of an implementation-defined set of characters, each of which occupies one printing position on a display device; the term control character refers to a member of an implementation-defined set of characters that are not printing characters.
to:
Those functions that have locale-specific aspects only when not in the "C" locale are noted below.
The term printing character refers to a member of a locale-specific set of characters, each of which occupies one printing position on a display device; the term control character refers to a member of a locale-specific set of characters that are not printing characters.
In subclause 7.3.1.2, page 102, subclause 7.3.1.6, page 103, subclause 7.3.1.9, page 104, and subclause 7.3.1.10, page 104, change:
is one of an implementation-defined set of characters
to:
is one of a locale-specific set of characters
Page 107
In subclause 7.4.1.1, page 107, second paragraph of Description, change:
a value of " for locale specifies the implementation-defined native environment.
to:
a value of " for locale specifies the locale-specific native environment.
Page 122
In subclause 7.8.1, page 122, change the last sentence from:
The va_start and va_end macros shall be invoked in the function accepting a varying number of arguments, if access to the varying arguments is desired.
to:
The va_start and va_end macros shall be invoked in corresponding pairs in the function accepting a varying number of arguments, if access to the varying arguments is desired.
In subclause 7.8.1.1, page 122, add at the end of the second paragraph of the Description:
va_start shall not be invoked again for the same ap without an intervening invocation of va_end for the same ap.
Page 151
In subclause 7.10.1.4, page 151, subclause 7.10.1.5, page 152, and 7.10.1.6, page 152, change:
In other than the "C" locale, additional implementation-defined subject sequence forms may be accepted.
to:
In other than the "C" locale, additional locale-specific subject sequence forms may be accepted.
Page 159
Change Footnote 131, page 159, from:
If the implementation employs special bytes to change the shift state, these bytes do not produce separate wide character codes, but are grouped with an adjacent multibyte character.
to:
If the locale employs special bytes to change the shift state, these bytes do not produce separate wide character codes, but are grouped with an adjacent multibyte character.
Page 168
In subclause 7.11.6.2, page 168, change:
The strerror function returns a pointer to the string, the contents of which are implementation-defined.
to:
The strerror function returns a pointer to the string, the contents of which are locale-specific.
Pages 204-207
In Annex G, pages 204-207, move the following bullet items under subclause G.3 to subclause G.4:
G.3.4, page 204, item 2 ("The shift states used for the encoding ...")
G.3.14, page 206, item 3 ("The sets of characters tested for ...")
G.3.14, page 207, item 33 ("The contents of the error message strings ...")
In Annex G.4 page 207, Locale-specific behavior, change:
The following characteristics of a hosted environment are locale-specific:
to:
The following characteristics of a hosted environment are locale-specific and must be documented by the implementation: