ここの誰かがファイルスコープで次のように書いています:
std::auto_ptr<ClassWithDestructor> an_auto_ptr;
彼らはそれを追加するつもりstatic
でしたが、それを無視しました。
次に、それぞれがこの宣言を含む.oを含む2つの異なるLinux共有ライブラリが、実行可能ファイルにリンクされることになりました。
このアイテムのauto_ptr::~auto_ptr
forは2回実行され、残念な結果になりました。
これは定義された動作、未定義の動作、またはgcc + ldのバグですか?