0801f41944
Since GCC 9, C++17 support is no longer experimental. It was too late to change the default C++ dialect to C++17 in GCC 10, but I think now it's time to pull the trigger (C++14 was made the default in GCC 6.1). We're still missing two C++17 library features, but that shouldn't stop us. See <https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2017> and <https://gcc.gnu.org/projects/cxx-status.html#cxx17> for the C++17 status. I won't list all C++17 features here, but just a few heads-up: - trigraphs were removed (hardly anyone cares, unless your keyboard is missing the # key), - operator++(bool) was removed (so some tests now run in C++14 and down only), - the keyword register was removed (some legacy code might trip on this), - noexcept specification is now part of the type system and C++17 does not allow dynamic exception specifications anymore (the empty throw specification is still available, but it is deprecated), - the evaluation order rules are different in C++17, - static constexpr data members are now implicitly inline (which makes them definitions), - C++17 requires guaranteed copy elision, meaning that a copy/move constructor call might be elided completely. That means that if something relied on a constructor being instantiated via e.g. copying a function parameter, it might now fail. I'll post an update for cxx-status.html and add a new caveat to changes.html once this is in. gcc/ChangeLog: * doc/invoke.texi (C Dialect Options): Adjust -std default for C++. * doc/standards.texi (C Language): Correct the default dialect. (C++ Language): Update the default for C++ to gnu++17. gcc/c-family/ChangeLog: * c-opts.c (c_common_init_options): Default to gnu++17. gcc/testsuite/ChangeLog: * c-c++-common/torture/vector-subscript-3.c: In C++17, define away the keyword register. * g++.dg/cpp1z/attributes-enum-1a.C: Only run pre-C++17. * g++.dg/cpp1z/fold7a.C: Likewise. * g++.dg/cpp1z/nontype3a.C: Likewise. * g++.dg/cpp1z/utf8-2a.C: Likewise. * g++.dg/parse/error11.C: Update expected diagnostics for C++17. * g++.dg/torture/pr34850.C: Add -Wno-attribute-warning. * g++.dg/torture/pr49394.C: In C++17, use noexcept(false). * g++.dg/torture/pr82154.C: Use -std=c++14. * lib/target-supports.exp: Set to C++17. * obj-c++.dg/try-catch-9.mm: Use -Wno-register. libgomp/ChangeLog: * testsuite/libgomp.c++/atomic-3.C: Use -std=gnu++14. |
||
---|---|---|
.. | ||
examples-4 | ||
affinity-1.C | ||
atomic-1.C | ||
atomic-2.C | ||
atomic-3.C | ||
atomic-4.C | ||
atomic-5.C | ||
atomic-6.C | ||
atomic-7.C | ||
atomic-8.C | ||
atomic-9.C | ||
atomic-10.C | ||
atomic-11.C | ||
atomic-12.C | ||
atomic-13.C | ||
atomic-14.C | ||
atomic-15.C | ||
c++.exp | ||
cancel-for-1.C | ||
cancel-for-2.C | ||
cancel-parallel-1.C | ||
cancel-parallel-2.C | ||
cancel-parallel-3.C | ||
cancel-sections-1.C | ||
cancel-taskgroup-3.C | ||
cancel-test.h | ||
collapse-1.C | ||
collapse-2.C | ||
copyin-1.C | ||
copyin-2.C | ||
ctor-1.C | ||
ctor-2.C | ||
ctor-3.C | ||
ctor-4.C | ||
ctor-5.C | ||
ctor-6.C | ||
ctor-7.C | ||
ctor-8.C | ||
ctor-9.C | ||
ctor-10.C | ||
ctor-11.C | ||
ctor-12.C | ||
ctor-13.C | ||
declare_target-1.C | ||
depend-1.C | ||
depend-iterator-1.C | ||
depobj-1.C | ||
doacross-1.C | ||
for-1.C | ||
for-2.C | ||
for-3.C | ||
for-4.C | ||
for-5.C | ||
for-6.C | ||
for-7.C | ||
for-8.C | ||
for-15.C | ||
for-16.C | ||
for-21.C | ||
for-22.C | ||
for-23.C | ||
for-24.C | ||
for-25.C | ||
for-26.C | ||
for-27.C | ||
lastprivate-conditional-1.C | ||
lastprivate-conditional-2.C | ||
linear-1.C | ||
loop-1.C | ||
loop-2.C | ||
loop-3.C | ||
loop-4.C | ||
loop-5.C | ||
loop-6.C | ||
loop-7.C | ||
loop-8.C | ||
loop-9.C | ||
loop-10.C | ||
loop-11.C | ||
loop-12.C | ||
loop-13.C | ||
loop-14.C | ||
loop-15.C | ||
master-1.C | ||
member-1.C | ||
member-2.C | ||
member-3.C | ||
member-4.C | ||
member-5.C | ||
member-6.C | ||
member-7.C | ||
nested-1.C | ||
parallel-1.C | ||
pr24455-1.C | ||
pr24455.C | ||
pr26691.C | ||
pr26943.C | ||
pr27337.C | ||
pr30703.C | ||
pr34513.C | ||
pr35185.C | ||
pr38650.C | ||
pr39573.C | ||
pr43893.C | ||
pr48869.C | ||
pr49043.C | ||
pr56217.C | ||
pr58706.C | ||
pr63248.C | ||
pr66702-1.C | ||
pr66702-2.C | ||
pr69393.C | ||
pr69555-1.C | ||
pr69555-2.C | ||
pr70376.C | ||
pr81130.C | ||
pr81314.C | ||
pr82835.C | ||
pr86291.C | ||
pr86539.C | ||
pr86542.C | ||
pr88988.C | ||
pr93931.C | ||
reduction-1.C | ||
reduction-2.C | ||
reduction-3.C | ||
reduction-4.C | ||
reduction-5.C | ||
reduction-6.C | ||
reduction-7.C | ||
reduction-8.C | ||
reduction-9.C | ||
reduction-10.C | ||
reduction-11.C | ||
reduction-12.C | ||
reference-1.C | ||
scan-1.C | ||
scan-2.C | ||
scan-3.C | ||
scan-4.C | ||
scan-5.C | ||
scan-6.C | ||
scan-7.C | ||
scan-8.C | ||
scan-9.C | ||
scan-10.C | ||
scan-11.C | ||
scan-12.C | ||
scan-13.C | ||
scan-14.C | ||
scan-15.C | ||
scan-16.C | ||
sections-1.C | ||
shared-1.C | ||
shared-2.C | ||
simd14.C | ||
simd-1.C | ||
simd-2.C | ||
simd-3.C | ||
simd-4.C | ||
simd-5.C | ||
simd-6.C | ||
simd-7.C | ||
simd-8.C | ||
simd-9.C | ||
single-1.C | ||
single-2.C | ||
single-3.C | ||
target-2-aux.cc | ||
target-2.C | ||
target-6.C | ||
target-7.C | ||
target-8.C | ||
target-9.C | ||
target-10.C | ||
target-11.C | ||
target-12.C | ||
target-13.C | ||
target-14.C | ||
target-15.C | ||
target-16.C | ||
target-17.C | ||
target-18.C | ||
target-19.C | ||
target-20.C | ||
target-21.C | ||
target-22.C | ||
task-1.C | ||
task-2.C | ||
task-3.C | ||
task-4.C | ||
task-5.C | ||
task-6.C | ||
task-7.C | ||
task-8.C | ||
task-reduction-1.C | ||
task-reduction-2.C | ||
task-reduction-3.C | ||
task-reduction-4.C | ||
task-reduction-5.C | ||
task-reduction-6.C | ||
task-reduction-7.C | ||
task-reduction-8.C | ||
task-reduction-9.C | ||
task-reduction-10.C | ||
task-reduction-11.C | ||
task-reduction-12.C | ||
task-reduction-13.C | ||
task-reduction-14.C | ||
task-reduction-15.C | ||
task-reduction-16.C | ||
task-reduction-17.C | ||
task-reduction-18.C | ||
task-reduction-19.C | ||
taskloop-5.C | ||
taskloop-6.C | ||
taskloop-7.C | ||
taskloop-8.C | ||
taskloop-9.C | ||
taskloop-reduction-1.C | ||
taskloop-reduction-2.C | ||
taskloop-reduction-3.C | ||
taskloop-reduction-4.C | ||
tls-init1.C | ||
udr-1.C | ||
udr-2.C | ||
udr-3.C | ||
udr-4.C | ||
udr-5.C | ||
udr-6.C | ||
udr-7.C | ||
udr-8.C | ||
udr-11.C | ||
udr-12.C | ||
udr-13.C | ||
udr-14.C | ||
udr-15.C | ||
udr-16.C | ||
udr-17.C | ||
udr-18.C | ||
udr-19.C | ||
udr-20.C | ||
udr-21.C |