Skip to content

Commit

Permalink
build: update bootstrap req to C++14
Browse files Browse the repository at this point in the history
We moved to a bootstrap requirement of C++11 in GCC 11, 8 years after
support was stable in GCC 4.8.

It is now 8 years since C++14 was the default mode in GCC 6 (and 9 years
since support was complete in GCC 5), and we have a few bits of optional
C++14 code in the compiler, so it seems a good time to update the bootstrap
requirement again.

The big benefit of the change is the greater constexpr power, but C++14 also
added variable templates, generic lambdas, lambda init-capture, binary
literals, and numeric literal digit separators.

C++14 was feature-complete in GCC 5, and became the default in GCC 6.  5.4.0
bootstraps trunk correctly; trunk stage1 built with 5.3.0 breaks in
eh_data_format_name due to PR69995.

gcc/ChangeLog:

	* doc/install.texi (Prerequisites): Update to C++14.

ChangeLog:

	* .github/log_expected_warnings: Update.
	* configure.ac: Update requirement to C++14.
	* configure: Regenerate.
  • Loading branch information
jicama authored and thesamesam committed Dec 6, 2024
1 parent 1995c83 commit 180f2f6
Show file tree
Hide file tree
Showing 4 changed files with 799 additions and 96 deletions.
24 changes: 4 additions & 20 deletions .github/log_expected_warnings
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,9 @@
../../c++tools/server.cc:620:10: warning: ignoring return value of ‘int pipe(int*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
../../gcc/../libgcc/libgcov-util.c:455:9: warning: ignoring return value of ‘int chdir(const char*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
../../gcc/analyzer/program-state.cc:1498:15: warning: format not a string literal and no format arguments [-Wformat-security]
../../gcc/analyzer/store.h:310:5: warning: ‘size_in_bytes.generic_wide_int<fixed_wide_int_storage<128> >::<anonymous>.fixed_wide_int_storage<128>::val[1]’ may be used uninitialized [-Wmaybe-uninitialized]
../../gcc/../libgcc/libgcov-util.c:214:59: warning: 'void* calloc(size_t, size_t)' sizes specified with 'sizeof' in the earlier argument and not in the later argument [-Wcalloc-transposed-args]
../../gcc/../libgcc/libgcov-util.c:529:43: warning: 'void* calloc(size_t, size_t)' sizes specified with 'sizeof' in the earlier argument and not in the later argument [-Wcalloc-transposed-args]
../../gcc/analyzer/store.h:310:5: warning: 'size_in_bytes.generic_wide_int<fixed_wide_int_storage<128> >::fixed_wide_int_storage<128>.fixed_wide_int_storage<128>::val[1]' may be used uninitialized [-Wmaybe-uninitialized]
../../gcc/c-family/c-common.cc:6763:14: warning: format not a string literal and no format arguments [-Wformat-security]
../../gcc/c-family/c-common.cc:6767:16: warning: format not a string literal and no format arguments [-Wformat-security]
../../gcc/c/c-convert.cc:84:13: warning: format not a string literal and no format arguments [-Wformat-security]
Expand All @@ -92,24 +94,6 @@
../../gcc/expmed.cc:1845:45: warning: ‘*(unsigned int*)((char*)&imode + offsetof(scalar_int_mode, scalar_int_mode::m_mode))’ may be used uninitialized in this function [-Wmaybe-uninitialized]
../../gcc/fold-const.cc:384:13: warning: format not a string literal and no format arguments [-Wformat-security]
../../gcc/gcc.cc:10668:12: warning: ignoring return value of ‘ssize_t read(int, void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
../../gcc/gcc.cc:2412:30: warning: too many arguments for format [-Wformat-extra-args]
../../gcc/gcc.cc:2413:32: warning: unknown conversion type character ‘t’ in format [-Wformat=]
../../gcc/gcc.cc:2432:30: warning: too many arguments for format [-Wformat-extra-args]
../../gcc/gcc.cc:2433:32: warning: unknown conversion type character ‘t’ in format [-Wformat=]
../../gcc/gcc.cc:2458:30: warning: too many arguments for format [-Wformat-extra-args]
../../gcc/gcc.cc:2459:32: warning: unknown conversion type character ‘t’ in format [-Wformat=]
../../gcc/gcc.cc:2467:30: warning: too many arguments for format [-Wformat-extra-args]
../../gcc/gcc.cc:2468:32: warning: unknown conversion type character ‘t’ in format [-Wformat=]
../../gcc/gcc.cc:2477:30: warning: too many arguments for format [-Wformat-extra-args]
../../gcc/gcc.cc:2478:32: warning: unknown conversion type character ‘t’ in format [-Wformat=]
../../gcc/gcc.cc:2487:30: warning: too many arguments for format [-Wformat-extra-args]
../../gcc/gcc.cc:2488:32: warning: unknown conversion type character ‘t’ in format [-Wformat=]
../../gcc/gcc.cc:2527:26: warning: too many arguments for format [-Wformat-extra-args]
../../gcc/gcc.cc:2527:59: warning: unknown conversion type character ‘t’ in format [-Wformat=]
../../gcc/gcc.cc:2539:22: warning: too many arguments for format [-Wformat-extra-args]
../../gcc/gcc.cc:2539:51: warning: unknown conversion type character ‘t’ in format [-Wformat=]
../../gcc/gcc.cc:2553:22: warning: too many arguments for format [-Wformat-extra-args]
../../gcc/gcc.cc:2553:51: warning: unknown conversion type character ‘t’ in format [-Wformat=]
../../gcc/gcc.cc:7897:9: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
../../gcc/gcc.cc:7900:13: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
../../gcc/gcc.cc:7901:13: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
Expand Down Expand Up @@ -150,5 +134,5 @@ gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fal
gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
install.texi:2231: warning: `.' or `,' must follow @xref, not f
install.texi:2230: warning: `.' or `,' must follow @xref, not f
libtool: install: warning: remember to run `libtool --finish /usr/local/libexec/gcc/x86_64-pc-linux-gnu/14.0.1'
Loading

0 comments on commit 180f2f6

Please sign in to comment.