GCC 7.1 已正式发布,说起来自 1.0 发布已经过去 30 年了。本次发布的版本包含了诊断方面的各种改进,包括改进过的位置、位置范围、标识符拼写错误提示、选项名称、修复提示,并添加了各种新的警告。还包括对当前 C++ 17 草案中所有标准的实验性支持,改进了优化器等。
GCC 7.1 是一个主要版本,其中包含 GCC 6.x 或以前的 GCC 版本中不可用的大量新功能,建议升级至最新版本。值得关注的新功能:C++ 前端现在已经为当前 C++ 17 草案的所有标准提供了实验性支持,其中包括 -std=c++1z 和 -std=gnu++1z 选项,而且 libstdc++ 库也实现了 C++ 17 草案库中的大部分特性。
还改进了优化器,包括过程内部以及过程之间的优化、链接时间优化和各种目标后端,还包括但不限于添加了存储合并,代码提升优化,循环分割和收缩包装的改进。
在离开审查范围之后还支持使用 Address Sanitizer 来报告变量的使用情况。GCC 现在可通过配置为 NVidia PTX GPGPUs 卸载 OpenMP 4.5。
在旧版 GCC 下可以成功编译的代码可能需要做一些代码调整,详见 http://gcc.gnu.org/gcc-7/porting_to.html。
详细变更内容,参阅https://gcc.gnu.org/gcc-7/changes.html。