概述
毕昇编译器基于开源LLVM开发,相比GNU编译器和Intel编译器,LLVM前端Clang对语法的检查更严谨,严格匹配语言标准,Clang 常见兼容性与可移植性相关问题,可查阅Clang 官方兼容性说明文档。本文主要列出一些毕昇编译器相对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文件中。
父主题: 兼容性说明