http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55910
--- Comment #5 from Oleh Derevenko <oder at eleks dot lviv.ua> 2013-01-08 18:11:42 UTC --- IMHO, I've localized the issue clearly enough. The code that generates instances for methods may sometimes consider some of those instances as having no parameters in method instance itself and as having some nonzero size of parameters (namely 0x38) in caller that re-adjusts stack after method instance has cleared the parameters. If those numbers would be taken from single variable that kind of bug would be impossible. So please examine the code and see where do you get total parameter size for 'ret' instruction from and where do you get total parameter size for stack re-adjustment from. And then please try to realize why those locations could possibly have different numbers in them.