This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug optimization/12324] [3.4 Regression] [unti-at-a-time] not emitting function referenced from a compound statement


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12324



------- Additional Comments From bernie at develer dot com  2003-09-26 16:29 -------
Subject: Re:  [3.4 Regression] [unti-at-a-time] not
 emitting function referenced from a compound statement

hubicka at ucw dot cz wrote:

>>------- Additional Comments From bernie at develer dot com  2003-09-25 20:48 -------
>>Not sure if it's the same bug, but 3.4 outputs
>>nothing for this code with -O2:
>>
>>  static int foo __attribute__((unused)) = 42;
>>
>>This breaks the Linux kernel (the __setup() macro).
>>GCC 3.3.1 did the right thing:
>>
>>        .data
>>        .align 4
>>        .type   foo, @object
>>        .size   foo, 4
>>foo:
>>        .long   42
> 
> You shall use attribute used here.  Attribute unused merely supress the
> warning, while attribute used makes it to be output.

Yes, I tried and it works. The documentation does not mention attribute
used for variables. I think it should be fixed.

> I will look into the other problem.

Thanks. That one also breaks the Linux kernel (drivers/net/fec.c uses
an idiom similar to the test case).

> Note that attribute used did not work for variables for older GCC, so
> you need ifdef machinery.

Do you know the exact GCC version that introduced it? I'd like to provide
a patch for the kernel. I can only confirm that 'used' works in 3.3.1 for
variables.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]