diff mbox

[C++] Set C++ standard earlier

Message ID 20150904110419.GC2813@redhat.com
State New
Headers show

Commit Message

Marek Polacek Sept. 4, 2015, 11:04 a.m. UTC
I noticed that -Wshift-overflow isn't on by default even though now we're
defaulting to C++14.  The reason is that at the time we set warn_shift_overflow
the cxx_dialect is still cxx_unset.  So let's set the default C++ standard
earlier in that function, before be enable/disable the warnings.

(A two other patches are prerequisite before this may go in.)

Bootstrapped/regtested on x86_64-linux, ok for trunk?

2015-09-04  Marek Polacek  <polacek@redhat.com>

	* c-opts.c (c_common_post_options): Set C++ standard earlier, before
	setting various warnings.


	Marek

Comments

Jason Merrill Sept. 4, 2015, 1:20 p.m. UTC | #1
OK.

Jason
diff mbox

Patch

diff --git gcc/c-family/c-opts.c gcc/c-family/c-opts.c
index 3239a85..f358b62 100644
--- gcc/c-family/c-opts.c
+++ gcc/c-family/c-opts.c
@@ -800,6 +800,10 @@  c_common_post_options (const char **pfilename)
       && flag_no_builtin)
     flag_tree_loop_distribute_patterns = 0;
 
+  /* Set C++ standard to C++14 if not specified on the command line.  */
+  if (c_dialect_cxx () && cxx_dialect == cxx_unset)
+    set_std_cxx14 (/*ISO*/false);
+
   /* -Woverlength-strings is off by default, but is enabled by -Wpedantic.
      It is never enabled in C++, as the minimum limit is not normative
      in that standard.  */
@@ -887,10 +891,6 @@  c_common_post_options (const char **pfilename)
   if (flag_abi_version == 0)
     flag_abi_version = 10;
 
-  /* Set C++ standard to C++14 if not specified on the command line.  */
-  if (c_dialect_cxx () && cxx_dialect == cxx_unset)
-    set_std_cxx14 (/*ISO*/false);
-
   if (cxx_dialect >= cxx11)
     {
       /* If we're allowing C++0x constructs, don't warn about C++98