This issue has been automatically converted from the original issue lists and some formatting may not have been preserved.
Authors: WG14
Date: 2004-09-23
Reference document: Embedded-c email list 207
Submitted against: Embedded C TR 18037:2004
Status: Fixed
Fixed in: Embedded C TR 18037:2008
Converted from: n1071.pdf, n1087.pdf, n1180.pdf
Description: in the new text for 6.7.2.1, the TR adds a constraint:
The specifier-qualifier-list in the declaration of a member of a structure or union shall not include an address space qualifier.
This is a mistake, because it keeps us from declaring something innocuous like
struct onePointer { _X int *pX; };
As written, the constraint would make the member declaration invalid, whereas we only intended to prohibit declarations such as this:
struct oneInteger { _X int iX; };
Proposed solution: change the constraint to be:
Within a structure or union specifier, the type of a member shall not be qualified by an address space qualifier.
Comment from WG14 on 2004-11-15:
Problem: The new text for 6.7.2.1, requires that a specifier-qualifier-list in the declaration of a member of a structure or union shall not include an address space qualifier. This disallows for instance the type of a member of structure to be a pointer into a named address space.
Solution: The intention was to disallow members of a single structure/union to have different address qualifiers.
Change: Modify the constraint for 6.7.2.1 to be: 'Within a structure or union specifier, the type of a member shall not be qualified by an address space qualifier.'