Disabling g++'s return-value optimisation

cpp_noname picture cpp_noname · Jan 6, 2012 · Viewed 12.8k times · Source

What flag(s) do I need on the command line to disable the return-value optimisation automatically enabled by the g++ compiler?

Answer

Prasoon Saurav picture Prasoon Saurav · Jan 6, 2012

-fno-elide-constructors

The C++ standard allows an implementation to omit creating a temporary which is only used to initialize another object of the same type. Specifying this option disables that optimization, and forces G++ to call the copy constructor in all cases. [Source: man gcc]