概述
毕昇编译器基于开源LLVM开发,相比GNU编译器和Intel编译器,LLVM前端Clang对语法的检查更严谨,严格匹配语言标准,Clang的常见兼容性和可移植性问题,请参考开源官方文档https://clang.llvm.org/compatibility.html。本文主要列出一些毕昇编译器相对GNU/Intel编译器不支持的问题以及部分固有实现,以供用户参考。毕昇编译器针对GNU/Intel编译器进行了一定程度的兼容,并提供针对GNU编译器的整体兼容选项-fGNU-compatibility及针对Intel编译器的整体兼容选项-fIntel-Compatibility。
毕昇编译器同时提供clang-tidy工具,为部分需要修改代码的兼容性问题场景提供修改建议。使用如下指令:
1 2 | clang-tidy --checks='-*,BSCompatibility*' -export-details=fix.yaml test1.c test2.cpp -- share/clang/clang-tidy-stats.py --args -export-stats=stats.xlsx -export-stats-input=fix.yaml |
可以识别兼容性问题并告警,并将代码信息和修改建议输出到stats.xlsx文件中。
父主题: 兼容性说明