c/c++语言开发共享Clang中有__int128_t的错误?

这个小代码汇编了GCC和Clang,但给出了不同的结果:

#include  int main(){ __int128_t test=10; while(test>0){ int myTest=(int)test; printf("? %dn", myTest); test--; } } 

对于GCC,这从预期行为从10减少到1,而对于Clang,它继续计入负数。 对于Clang,如果我用test-=1替换test--那么它也会给出预期的行为。

__int128_t是GCC扩展,因此上述结果仅适用于非标准C,因此在Clang中__int128_t可能“使用后果自负”。

这是Clang中的一个错误,还是我犯了一些我没看到的错误?

编辑:我正在使用gcc(MacPorts gcc48 4.8-20130411_0)4.8.1 20130411(预发布)和Apple clang 4.0版(标签/ Apple / clang-421.0.60)(基于LLVM 3.1svn)。

    这是Clang中的一个错误,它在Apple clang 4.0版(标签/ Apple / clang-421.0.60)(基于LLVM 3.1svn)和Apple LLVM版本4.2(clang-425.0.28)之间解决(基于LLVM) 3.2svn),请参阅评论 – 感谢Carl和H2CO3。

      以上就是c/c++开发分享Clang中有__int128_t的错误?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/560593.html

      (0)
      上一篇 2021年1月28日
      下一篇 2021年1月28日

      精彩推荐