发布于 2016-04-28 00:59:41 | 255 次阅读 | 评论: 0 | 来源: 网友投递
GCC GNU编译器套装
GCC(GNU Compiler Collection,GNU编译器套装)是一套由GNU工程开发的支持多种编程语言的编译器。GCC是自由软件发展过程中的著名例子,由自由软件基金会以GPL协议发布。GCC是大多数类Unix操作系统(如Linux、BSD、Mac OS X等)的标准的编译器,GCC同样适用于微软的Windows。
GCC 6.1 发布了,该版本较之前GCC5 新怎了大量的功能特性,默认采用C++14为新的标准,替代了之前的C++98。OpenMP 4.5规范将在本版本中被支持。此外,GCC 6.1 增强了对 C++17 的试验性支持;大大改进了诊断特性,包括位置,位置范围,拼写错误标识符建议,选项名字等等改进;新增了修复提示和一些警告提示。改进记录如下:
UndefinedBehaviorSanitizer gained a new sanitization option, -fsanitize=bounds-strict
, which enables strict checking of array bounds. In particular, it enables -fsanitize=bounds
as well as instrumentation of flexible array member-like arrays.
Type-based alias analysis now disambiguates accesses to different pointers. This improves precision of the alias oracle by about 20-30% on higher-level C++ programs. Programs doing invalid type punning of pointer types may now need -fno-strict-aliasing
to work correctly.
Alias analysis now correctly supports weakref
and alias
attributes. This makes it possible to access both a variable and its alias in one translation unit which is common with link-time optimization.
Value range propagation now assumes that the this
pointer of C++ member functions is non-null. This eliminates common null pointer checks but also breaks some non-conforming code-bases (such as Qt-5, Chromium, KDevelop). As a temporary work-around -fno-delete-null-pointer-checks
can be used. Wrong code can be identified by using -fsanitize=undefined
.
完整发布说明,可以在这里查看。