On 06/27/2010 09:10 PM, dev-random@... wrote:
> On Sun, Jun 27, 2010 at 08:48:25PM +0300, Nikos Chantziaras wrote:
>> ...
>> It is allowed. Section 7.1.1, Paragraphs 2 and 3 of the C++ standard:
>> ...
>
> Not in C.
> ISO/IEC 9899:1999 (aka C99), section 6.7.1, note 101:
>> The implementation may treat any register declaration simply as an auto
>> declaration. However, whether or not addressable storage is actually
>> used, the address of any part of an object declared with storage-class
>> specifier register cannot be computed, either explicitly (by use of the
>> unary& operator as discussed in 6.5.3.2) or implicitly (by converting
>> an array name to a pointer as discussed in 6.3.2.1). Thus, the only
>> operator that can be applied to an array declared with storage-class
>> specifier register is sizeof.
Wasn't aware of the difference here. But anyway, the warning is issued
by GCC for C++ too, not just C.
|