https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81147
--- Comment #6 from Felipe Magno de Almeida <felipe at expertisesolutions dot com.br> --- NRVO: Named Return Value Optimization RVO: Return Value Optiomization It is the eliminiation of copying when returning objects by value (or passed by-value as parameters for rvalues). The assembly shows copying from return values and/or parameters for avr gcc which do not happen for x86, but only when the type inherits from other classes, even if the base class is empty. This restriction doesn't happen with x86-64 backend. Regards,