タグ

ブックマーク / qiita.com/yohhoy (1)

  • 鼻から悪魔:不定値(indeterminate value)バージョン - Qiita

    #include <cstdio> #define NUMBER 42 static void func(int& rv) { int local = rv; if (local == NUMBER) { std::puts("hit"); } else { std::puts("stay"); } } int main() { int v; // indeterminate value func(v); } 答え: gcc 6.1, -O2オプション: stay clang 3.9.0, -O2オプション: hit は?clangなにやってんの? clangの場合、マクロNUMBERを任意の数値にかえたとしても結果はhitになります。 一方のgccは何となく正しいようにも思えますかね? コンパイラのバグだろ? いいえ、C++ソースコードのバグです。悔い改めてください。 変数vは不定値(i

    鼻から悪魔:不定値(indeterminate value)バージョン - Qiita
  • 1