toge's diary

コンピュータ関連の趣味をつらつらと。

gcc 4.1.0 無事コンパイル終了

うちのFedora Core4がおかしいのか、マシンがおかしいのか知りませんが、一回目のコンパイルではundefiend referenceが出てしまった。どうもコンパイル中にsegmentation faultして、空のオブジェクトが出来、そのオブジェクトで定義されるシンボルが全滅しちゃったみたいだ。なるへそ。

いざgcc 4.1.0を使うと、今まではgcc 3.3.6を使っていたのですが、結構適当なことに気がつく。
ちゃんと確認していないが、gcc 3.3.6では以下のコードは問題なく通ってしまう。gcc 4.1.0は怒る。

class Foo {
public:
  Foo();

  void act();
};

namespace bar {

Foo::Foo() {}
void Foo::act() {}

} 

しかしgcc 4.1.0にしたら動作が変わっちゃったものもある。以前作ったPDRの描画ルーチンだが、ものの見事に凹多角形の描画がうまくいかなくなってしまった。gcc 3.3.6では普通に動いていたのだが、コーディングに問題があるのだろうか?確認せねば。

分かりました。-ffast-mathを外したらあっさり動きました。とりあえず一見落着。