Konosuke Watanabe
sasug****@gmail*****
2005年 11月 7日 (月) 00:59:36 JST
こんにちは,渡辺です. > 報告ありがとうございます。勝手に #undef するよりは専用の token > __noinline__ が用意されているので、そっちを利用するように変更しておきま > した (@r2020)。 試してみたところ(r2023ですが),エラー無しにビルドが通るよう になりました.ありがとうございました. > しかし妙ですね。__attribute__(()) は文法上有効 (GCC manual の attribute > syntax 参照) ですので、こっそり inline が有効になるだけのはずなんです > が。今まで表面化しなかったのもそのせいです。手元の debian sid でも > __attribute__(()) になりつつ build は成功しました。 うーん,以下のようなコードでちょっと実験してみたところ,gcc-4.0.2では g++で処理してもエラーが出ませんでしたが,gcc-2.95.3やgcc-3.3.6だと 先と同様のエラーになってしまいます. #ifdef __cplusplus extern "C" { #endif int fn(void) __attribute__ (()); #ifdef __cplusplus } #endif int fn(void) { return 1; } int main(void) { fn(); return 0; } 単に古いgccのバグなんでしょかね・・・. --- Konosuke WATANABE <sasug****@gmail*****>