04/03 20:06 (
@gorry5) いま扱ってるC++コードがどうも動作がおかしくて、デバッガで追ったら「関数の最後で戻らず次の関数に突っ込む」という現象が。逆アセンブルをみたら確かに関数末尾にret命令が生成されていない…そりゃ突っ込むわw
(poga)
04/03 20:06 (
@gorry5) なんでコンパイラがそんな命令を生成するの…と見たら、「返値が必要な関数なのに関数末尾で『return 返値』がない」コードだった。当然コンパイル時にwarningは出てるのだが、それは「warningでなくerrorでコンパイル停… https://twitter.com/i/web/status/1113397144222715904
(pogi)
04/03 20:30 (
@gorry5) ちなみに、過去扱ってきたコンパイラでは「返値を格納するレジスタが不定値のままretする」命令を生成するものだったけど、最近の「未定義と定められたコードにはどんな怪しい結果を吐いてもいいよね」的怪しい動作をするコンパイラの影響だろうか…
(sage)