mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-01 05:45:45 +00:00
8d6d07c36d
The default mode for C++ is now -std=gnu++14 instead of -std=gnu++98. 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. 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. There have been significant improvements around link-time optimization and inter-procedural optimization and some support for OpenACC (though probably not tested on FreeBSD) and version 4.5 of the OpenMP specification. Source locations for the C and C++ compilers are now tracked as ranges and diagnostics can now contain "fix-it hints". New command-line options include -Wshift-negative-value, -Wshift-overflow, -Wtautological-compare, -Wnull-dereference, -Wduplicated-cond, and -Wmisleading-indentation. C++ Concepts are now supported when compiling with -fconcepts, and there are several other improvements around support for newer C++ features as well as in the libstdc++ library. Fortran now features Fortran 2008 SUBMODULE support, Fortran 2015 EVENT_TYPE, EVENT_POST, EVENT_WAIT, and EVENT_QUERY support, and improved support for OpenMP and OpenACC. A lot has happened on the AArch64 and ARM fronts, on x86-64 there is now Skylake with AVX-512 support, AMD instructions monitorx and mwaitx, and support for address spaces __seg_fs, __seg_gs, and __seg_tl, as well as AMD Zen (family 17h) processors, and basic support has been added for POWER9. https://gcc.gnu.org/gcc-6/changes.html has a more extensive set of changes and https://gcc.gnu.org/gcc-6/porting_to.html has a solid overview of issue you may encountering porting to this new version.
8 lines
239 B
Plaintext
8 lines
239 B
Plaintext
GCC, the GNU Compiler Collection, supports a number of languages. This
|
|
port installs the C, C++, Fortran and Java front ends as gcc6, g++6,
|
|
gfortran6, and gcj6, respectively.
|
|
|
|
WWW: http://gcc.gnu.org/
|
|
|
|
Gerald Pfeifer <gerald@FreeBSD.org>
|