------- Additional Comments From bruno at clisp dot org  2005-04-22 14:14 
-------
I don't understand your resolution. 
 
How can I guarantee that gcc will not put 'ptr' and 'array' into registers 
where, on SPARC, 
longjmp() will clobber them? 
 
The semantics of 'volatile' are quite different than 'non register'. It has 
negative effect on 
performance. 
 
GCC should add a 'nonregister' qualifier or attribute that would allow to force 
variables into 
the stack without making their access slower than other stack allocated 
variables. 
 
The GCC 4.0 documentation says "These warnings occur only for variables that 
are 
candidates for register allocation.  Therefore, they do not occur for a 
variable that is 
declared `volatile', or whose address is taken, or whose size is other than 1, 
2, 4 or 8 bytes." 
I have taken the address of 'ptr' and despite that, it was not excluded from 
the candidates 
for register allocation - or the warning occurred despite of the variable being 
stack allocated. 
In either case, it's a GCC bug. 
 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |UNCONFIRMED
         Resolution|INVALID                     |


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

Reply via email to