This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: gcc 4.1.2 is giving compilation error with unnamed structure of register const variable
Muralidhar <muralidharvvkmca@gmail.com> writes:
> Thanks for looking into this issue. The issue can be avioded by either
> removing const or register from the declaration. but unfortunately i
> required the combination of both in my testing snerious.
Using the "register" qualifier makes very little sense. I can't
understand why you would bother to test that.
> Do we have any compiler option to avoid this bug.
Not that I know of. Unless you count "-Dregister=".
Ian
> Ian Lance Taylor-3 wrote:
>>
>> Muralidhar <muralidharvvkmca@gmail.com> writes:
>>
>>> I have a sample program which is compiling fine in GCC version 3.3.3
>>> on SUSE Linux with kernel 2.6.5,
>>> but it is giving compilation error in GCC version 4.1.2 with SUSE
>>> Linux kernel 2.6.16
>>>
>>> >>Sample program <<
>>> $ cat exam.c
>>> #include <stdio.h>
>>> int main()
>>> {
>>> register const struct { short l; unsigned char d[2]; }
>>> vVRCU___I = { 2,"a" };
>>> register const struct { short l; char d[2]; }
>>> vVRC____I = { 2,"a" };
>>>
>>> return 0;
>>> }
>>>
>>> $ gcc exam.c --> gcc 4.1.2
>>> exam.c: In function ÃmainÃ:
>>> exam.c:5: error: register name not specified for ÃvVRC____IÃ
>>> exam.c:4: error: register name not specified for ÃvVRCU___IÃ
>>
>> I think this is a bug.
>>
>> To avoid the bug, remove the "register" keyword. There is no reason to
>> ever use the "register" keyword with current versions of gcc.
>>
>> Ian
>>
>>