------- 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