GCC 8.1 发布,该版本是一个主要版本,包含了一些新功能以及其它许多功能增强。
C++前端现在已经为即将推出的 C++2a 草案中的一些部分提供了实验性支持,同时 -std = c++2a 和 -std = gnu++2a 选项,以及 libstdc ++ 库还有一些 C++17 和 C++2a 草稿库特性也实现了。
此版本在诊断功能方面具有显着的改进,包括位置、位置范围和 fix-it 提示(特别是 在C++前端),并添加了各种新的警告。
配置文件驱动的优化得到了显着改善,现在在x86上功能默认分为热区和冷区。链接时间优化现在有一种发布 DWARF 调试信息的新方法,这使得 LTO 优化的代码更具可调试性。新的循环优化器也做了一些改进与新增特性,像 -ftree-loop-distribution、-floop-unroll-and-jam 和 -floop-interchange 在默认情况下已启用 -O3。
AArch64 目标现在支持可伸缩向量扩展,以运行时确定的元素数量为特征向量。
同时有一些需要注意的事项:
- 已删除支持过时的 SDB / coff 调试信息格式,选项 -gcoff 不再执行任何操作。
- C 和 C++ 的 Cilk+ 扩展已被删除。
- C 和 C++ 的 MPX 扩展已被弃用,并将在未来版本中删除。
std::atomic<void*>
扩展和类似std::atomic<R(*)()>
的输入方式已经被弃用。- 非标准的 C++0x std :: copy_exception 函数已经被删除,使用 std :: make_exception_ptr 来替换。
- GCC 8 已经宣布废弃最近未在 GCC 中维护且未经测试的 powerpc*-*-*spe* 目标端口,除非有活动来恢复它们,否则 GCC 的下一个版本将永久删除它们的源代码。
详情见发布公告。
GCC(GNU Compiler Collection,GNU编译器套装)是一套由 GNU 开发的编程语言编译器。它是一套以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU 计划的关键部分,同时也是类 Unix 及苹果计算机 Mac OS X 操作系统的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。
GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C语言。随后增加了处理 C++的能力,再之后也变得可处理 Fortran、Pascal、Objective-C、Java,以及 Ada 等多种语言。
点击进入下载页面。
转自 https://www.oschina.net/news/95733/gcc-8-1-released
苹果用clang