36

g ++コンパイラによって自動的に有効にされる戻り値の最適化を無効にするには、コマンドラインでどのようなフラグが必要ですか?g ++の戻り値の最適化を無効にする

+2

コードの例を与える、そしてなぜあなたは私がすることを好むので、私は私のソフトウェアライブラリの実装をデバッグし、テストしてい最適化 – fge

+2

@fge、この種のを望んでいません私のソフトウェアの実行中にすべての一歩を参照してください... –

+5

もちろん、多くの人が実際にコンストラクタelisionであなたのライブラリを使用するので、あなたはその設定でもそれをテストする必要があることを認識していますか? –

答えて

71

-fno-elide-constructors

C++標準では、実装は、同じタイプの別のオブジェクトを初期化するために使用される一時的な作成を省略することを可能にします。このオプションを指定すると、その最適化が無効になり、すべての場合にG ++がコピーコンストラクタを強制的に呼び出すようになります。 [出典:男性のgcc]


+0

本当にありがとうございます!今私はコンパイラから見たいものを持っています。 –

+1

トピックを削除すると、このフラグを使用するとclang [my --versionはApple clangバージョン4.1(tags/Apple/clang-421.11.66)(LLVM 3.1svnに基づいています)]にバグがあります。私の場合はsegフォルトが発生するようです:http://llvm.org/bugs/show_bug.cgi?id=12208 –

関連する問題