This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/27528] compiling linux kernels 2.6.16.14/15 2.6.17-rc3 on powerpc (7450) get error on long exixting code
- From: "hp at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 14 Jun 2006 15:08:34 -0000
- Subject: [Bug middle-end/27528] compiling linux kernels 2.6.16.14/15 2.6.17-rc3 on powerpc (7450) get error on long exixting code
- References: <bug-27528-11706@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #10 from hp at gcc dot gnu dot org 2006-06-14 15:08 -------
I can't help but thinking the code is valid and that this is a valid bug.
Arguably, it *might* be hard to fix, and we'll have to cop out and adjust the
documentation instead.
I mean, the "i" constraint purpose is documented as:
"this includes symbolic constants whose values will be known only at assembly
time or later." In this case, "later" is link-time. In some cases, including
variables, the "later" would be dynamic-link-time which will be a bit beyond
reach; but as long as GCC generates an internal label, it should work with no
warnings. See also PR19708 and 17346. If the C standard defines something
other than programmer sense for "symbolic constant", that isn't as interesting;
we're already in asm-land and are supposed to be useful, not pedantic. Taking
the address of a constant string is useful...
And oh, I almost forgot to mention that I get the warning with 3.2 for
cris-axis-linux-gnu too. Yes, in the kernel, for the same use. (Sigh.)
I'm a bit behind on gcc work so I don't know if I get it for 4.2 as well.
I assigned the PR to me to avoid the feeling of adding to peoples workload,
but I guess I'll have to hack trees and that might take a while.
--
hp at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hp at gcc dot gnu dot org
Status|RESOLVED |UNCONFIRMED
Resolution|INVALID |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27528