Endowsの日記: Endows の へっぽこプログラマ日誌 第25回
日記 by
Endows
今日は、 Windows + VisualC++ では問題なく動く C のソースコードを渡されて、 SuperH 上で動かしてパフォーマンスを測定する、という作業だったんですが。
Hew でコンパイルして SuperH 上で動かすと正しく動作しない。
という症状から、『多分処理系依存なコードがどこかにあるんだろうな~』と。
最初は負の整数の右ビットシフトかな、と思ったんですが、処理系依存な書き方にはなっているものの、どっちでも動作は同じ。
んで、詳しく調べるうちに『ある配列の値が、インデックス 1つずれたところに代入されている』ということに気づき。
その配列に値を代入するところを良く見てみたら。
bar[foo] = a * baz[foo++];
となってました。(変数名は変えてあります。)
以上、今日のデバッグ顛末記でしたとさ。
Hew でコンパイルして SuperH 上で動かすと正しく動作しない。
という症状から、『多分処理系依存なコードがどこかにあるんだろうな~』と。
最初は負の整数の右ビットシフトかな、と思ったんですが、処理系依存な書き方にはなっているものの、どっちでも動作は同じ。
んで、詳しく調べるうちに『ある配列の値が、インデックス 1つずれたところに代入されている』ということに気づき。
その配列に値を代入するところを良く見てみたら。
bar[foo] = a * baz[foo++];
となってました。(変数名は変えてあります。)
以上、今日のデバッグ顛末記でしたとさ。
Endows の へっぽこプログラマ日誌 第25回 More ログイン