http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29141
Michael Schulze <mschulze at ivs dot cs.ovgu.de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mschulze at ivs dot | |cs.ovgu.de --- Comment #7 from Michael Schulze <mschulze at ivs dot cs.ovgu.de> 2010-11-26 19:21:00 UTC --- In my opinion this bug is still pending and not fixed. The proposed fix uses register r20 but this could be clobbered by constructor that are called, leading to destructing the exit condition of the __do_global_ctors loop. In new version of gcc (see bug 45263 but still not confirmed) this is weakly fixed by pushing and poping r20 around the constructor call. I would suggest using a register between r2-r17 instead of r20. According to the compiler abi this should be a register that the called routine has to save if it needs to use it.