http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45099
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
CC| |gjl at gcc dot gnu.org
Resolution| |FIXED
Target Milestone|--- |4.7.0
--- Comment #2 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-05-16
14:36:32 UTC ---
Closed as resolved+fixed according to the patch above.
The patch issues an error and not a warning as indicated in the PR. This is
because the code will break at runtime if it reaches the spot, anyway, so the
program will always show malfunction.
A global register is *global*, so it would be an error to save/restore it in
function prologue/epilogue. For that reason, avr-gcc explicitely excludes
global registers from prologue/epilogue (otherwise the value of a global reg
could never escape a function, as opposed to being global).