[最新] ■[前年|前月|前日|2019/04/03|翌日|翌月|翌年] ■表示[全て|@gorry5のみ|個別]
■グループ[Mention] ■その他[Twitter:@gorry5][日記] ■[twtlog 20100921a]

04/03 20:06 いま扱ってるC++コードがどうも動作がおかしくて、デバッガで追ったら「関数の最後で戻らず次の関数に突っ込む」という現象が。逆アセンブルをみたら確かに関数末尾にret命令が生成されていない…そりゃ突っ込むわw (poga)
04/03 20:06 なんでコンパイラがそんな命令を生成するの…と見たら、「返値が必要な関数なのに関数末尾で『return 返値』がない」コードだった。当然コンパイル時にwarningは出てるのだが、それは「warningでなくerrorでコンパイル停… https://twitter.com/i/web/status/1113397144222715904 (pogi)
04/03 20:06 warningなんか全部潰しとけ…というのはごもっともなのだけど、自分で書いたコードじゃないしな…(苦笑 (pogu)
04/03 20:07 (@ksmakoto) @gorry5 (GCCなら、ですが)利用者が -Werror を付けるべき、ですね (ki)
04/03 20:10 @ksmakoto その場合、現時点でいくつあるかわからないwarningをすべて当方が潰す…という仕事を新たに背負う羽目になりますが…(苦笑 (zu)
--------
04/03 20:11 (@ksmakoto) @gorry5 そこなんですね……warningの種別ごとに個別に選べればいいんですが (kiso)
--------
04/03 20:14 (@Saider51) @gorry5 あのコンパイラ、本当にそこエラーにして欲しいね?。原因わかったときの虚無感ハンパない…… (kipe)
04/03 20:16 @ksmakoto あと、いわゆるこの「返り値が必要だが返さないパスが発生する関数をエラーにする」というのは、noreturn属性を付けられない環境では困るんですよね…assertして止めちゃう場合とか (kuhu)
04/03 20:30 ちなみに、過去扱ってきたコンパイラでは「返値を格納するレジスタが不定値のままretする」命令を生成するものだったけど、最近の「未定義と定められたコードにはどんな怪しい結果を吐いてもいいよね」的怪しい動作をするコンパイラの影響だろうか… (sage)
04/03 22:28 @star_alpha2 すみません、「戦略として」のそれは結構あるというか、「終了間際にアクセスできないor忘れてる人」を出し抜くための行為ですよね… (gabu)
04/03 22:31 @ume3fmp @star_alpha2 今は「数%ずつしか上げられない」ようになっているので、かなりマシなのでは? (gizu)

■グループ[Mention] ■その他[Twitter:@gorry5][日記] ■[twtlog 20100921a]
[最新] ■[前年|前月|前日|2019/04/03|翌日|翌月|翌年] ■表示[全て|@gorry5のみ|個別]