例のバグですが、Fedora8は再インストールしてしまったので、Cygwinでビルド(寝る前に終わらなかったので一晩放置)して検証しました。
static_castとか関係なくて、
unsigned foo(int n)
{
return ~((unsigned)~n);
}
で再現しました。
ちなみに
unsigned foo(int n)
{
return ~(~n);
}
はOK。
デバッガで追って問題の箇所まで特定できたので、Bugzillaにポストしておきました。
で、あっという間に修正されました。