Why three separate flags?

The flag(s) need(s) to be documented in doc/invoke.texi.

@@ -721,7 +733,12 @@
     case OPT_std_c__1y:
     case OPT_std_gnu__1y:
       if (!preprocessing_asm_p)
-       set_std_cxx1y (code == OPT_std_c__11 /* ISO */);
+       {
+         set_std_cxx1y (code == OPT_std_c__11 /* ISO */);
+         cpp_opts->imaginary_literals = 0;
+         cpp_opts->fixed_point_literals = 0;
+         cpp_opts->machine_defined_literals = 0;
+       }

I think I would disable the built-in extension in both C++11 and C++1y if we're in ISO mode, and leave it enabled if we're in GNU mode.

I think the ideal behavior for these suffixes would be to treat them as user-defined literals if a corresponding literal operator is available, or use the built-in extension if not. But that doesn't need to happen now.

Jason

Reply via email to