各種コンパイラで C 言語とC++ の小数型リテラル値の論理和を試す2018年10月05日 11時37分17秒

FreeBSD の LLVM で C 言語とC++ の小数型リテラル値の論理和を試すで、FreeBSD の LLVM の動作を確認したので、今回は、それ以外を一気に。

まずは、復讐を兼ねて FreeBSD 11.2-RELEASE の llvm の出力。

freebsd% cat logical-and-double.c
int main()
{   
    return 1 && .2;
}
freebsd% cc logical-and-double.c
logical-and-double.c:3:17: warning: implicit conversion from 'double' to '_Bool'
      changes value from 0.2 to true [-Wliteral-conversion]
    return 1 && .2;
             ~~ ^~
1 warning generated.
LLVM のみ、この様な警告を表示し、他のコンパイラは何も出さない。

AIX の xlc コンパイラで。

aix% cat logical-and-double.c
int main()
{   
    return 1 && .2;
}
aix% xlc logical-and-double.c 
aix%

Solaris の cc コンパイラ。

solaris% cat logical-and-double.c
int main()
{   
    return 1 && .2;
}
solaris% cc logical-and-double.c 
solaris%

最後に、Linux の gcc コンパイラ。

linux% cat logical-and-double.c
int main()
{   
    return 1 && .2;
}
linux% gcc logical-and-double.c
linux%

LLVM が一番厳しくコードを検査する様だ。

前回次回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2018/10/05/8968949/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。