Defect report from : Lee Damico , Sun Microsystems, Inc.
(Please direct followup comments direct to yyyyyyyyyyyyyy@xxxxxxxxxxxxx)
@ page 15 line 579-583 section 2.2.2 The Name Space objection {ld-1}
Problem:
Edition of Specification (Year): 2003
Defect code : 1. Error
The 2003 Edition of the Systems Interface, Issue 6, Volume 1 removed
the reserved prefixes for POSIX_, _POSIX_, posix_ that were previously
listed on page 17, line 651, under "ANY header". Though we believe the
intent was to remove ambiguity regarding the inclusion of symbols
prefixed by POSIX_, _POSIX_, and posix_, but NOT defined by the
standard, the end result appears to be that symbols specified by the
standard and prefixed with these names are only allowed in the headers
where they are defined. Where this becomes an issue specifically is
for the _POSIX_ prefix. Visibility of symbols with an underbar and
upper case letter have always been allowed in any of the headers
defined by the standard. This is clarified on page 19, lines 713-714.
Now, it appears that there is an exception, that is when a symbol
is prefixed by _POSIX_ regardless of whether or not it is defined by
the standard. We believe the intent was not to disallow visibility
of those symbols defined by the standard, but instead, to restrict
the namespace for _POSIX_ to that specified by the standard. The
suggested updates clarify what is and is not allowed.
Action:
Section 2.2.2, Page 15, Line 583
Add the following sentence:
Symbols defined in the standard that use the reserved
prefixes posix_, POSIX_ or _POSIX_ may be visible in
any header defined by the standard.
Section 2.2.2, Page 19, Lines 713 and 714
Replace the sentence with:
1. With the exception of identifiers beginning with _POSIX_, all
identifiers that begin with an underscore and either an
uppercase letter or another underscore are always reserved for
any use by the implementation.
|