Come up with Deprecated option flag.
authorMartin Liska <mliska@suse.cz>
Tue, 12 Jun 2018 14:21:10 +0000 (16:21 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Tue, 12 Jun 2018 14:21:10 +0000 (14:21 +0000)
2018-06-12  Martin Liska  <mliska@suse.cz>

* doc/options.texi: Document Deprecated option flag.
2018-06-12  Martin Liska  <mliska@suse.cz>

* config/i386/i386.opt: Make MPX-related options as Deprecated.
* opt-functions.awk: Handle Deprecated flag.
* opts-common.c (decode_cmdline_option): Handle cl_deprecated
        and report error.
(read_cmdline_option): Report warning for a deprecated option.
* opts.h (struct cl_option): Add new field cl_deprecated.
(CL_ERR_DEPRECATED): New.
2018-06-12  Martin Liska  <mliska@suse.cz>

* c.opt: Make MPX-related options as Deprecated.
2018-06-12  Martin Liska  <mliska@suse.cz>

* g++.dg/opt/mpx.C: New test.
* gcc.target/i386/mpx.c: New test.

From-SVN: r261497

gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c.opt
gcc/config/i386/i386.opt
gcc/doc/options.texi
gcc/opt-functions.awk
gcc/opts-common.c
gcc/opts.h
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/opt/mpx.C [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/mpx.c [new file with mode: 0644]

index b4da50f338d4f8d183e1213bf9293b137a3a968c..0fb4ea82c50a72d82248344b0f1540692ed8f05c 100644 (file)
@@ -1,3 +1,17 @@
+2018-06-12  Martin Liska  <mliska@suse.cz>
+
+       * config/i386/i386.opt: Make MPX-related options as Deprecated.
+       * opt-functions.awk: Handle Deprecated flag.
+       * opts-common.c (decode_cmdline_option): Handle cl_deprecated
+        and report error.
+       (read_cmdline_option): Report warning for a deprecated option.
+       * opts.h (struct cl_option): Add new field cl_deprecated.
+       (CL_ERR_DEPRECATED): New.
+
+2018-06-12  Martin Liska  <mliska@suse.cz>
+
+       * doc/options.texi: Document Deprecated option flag.
+
 2018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
 
        * config/arc/arc-arch.h (arc_extras): New enum.
index 0ac89d432da742e93c05b23ee760ab72e590115a..9ef0a12eb6afc542f122ec119df13739701ab53d 100644 (file)
@@ -1,3 +1,7 @@
+2018-06-12  Martin Liska  <mliska@suse.cz>
+
+       * c.opt: Make MPX-related options as Deprecated.
+
 2018-06-08  David Malcolm  <dmalcolm@redhat.com>
 
        * c-pretty-print.c (c_pretty_printer::statement): Use TDF_NONE
index 1d7eafff1f770571265de2e221be0c8fd9dae108..b4aefd8d5f636c6de2209e94cea8dd6ad89fbd6b 100644 (file)
@@ -409,7 +409,7 @@ C ObjC C++ ObjC++ Var(warn_char_subscripts) Warning LangEnabledBy(C ObjC C++ Obj
 Warn about subscripts whose type is \"char\".
 
 Wchkp
-C ObjC C++ ObjC++ Var(warn_chkp) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
+C ObjC C++ ObjC++ Var(warn_chkp) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 Wclobbered
@@ -1259,86 +1259,86 @@ C ObjC C++ ObjC++
 Where shorter, use canonicalized paths to systems headers.
 
 fcheck-pointer-bounds
-C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds)
+C ObjC C++ ObjC++ LTO Report Var(flag_check_pointer_bounds) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-check-incomplete-type
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_incomplete_type) Init(1) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-zero-input-bounds-for-main
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_input_bounds_for_main) Init(0) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-first-field-has-own-bounds
-C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds)
+C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_first_field_has_own_bounds) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-narrow-bounds
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_narrow_bounds) Init(1) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-narrow-to-innermost-array
-C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray)
+C ObjC C++ ObjC++ LTO RejectNegative Report Var(flag_chkp_narrow_to_innermost_arrray) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-flexible-struct-trailing-arrays
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_flexible_struct_trailing_arrays)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_flexible_struct_trailing_arrays) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-optimize
 C ObjC C++ ObjC++ LTO Report Var(flag_chkp_optimize) Init(-1)
 
 fchkp-use-fast-string-functions
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_fast_string_functions) Init(0) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-use-nochk-string-functions
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_nochk_string_functions) Init(0) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-use-static-bounds
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_bounds) Init(1) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-use-static-const-bounds
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_static_const_bounds) Init(-1) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-treat-zero-dynamic-size-as-infinite
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_zero_dynamic_size_as_infinite) Init(0) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-check-read
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_read) Init(1) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-check-write
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_check_write) Init(1) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-store-bounds
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_store_bounds) Init(1) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-instrument-calls
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_calls) Init(1) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-instrument-marked-only
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_instrument_marked_only) Init(0) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fchkp-use-wrappers
-C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1)
+C ObjC C++ ObjC++ LTO Report Var(flag_chkp_use_wrappers) Init(1) Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 static-libmpx
-Driver
+Driver Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 static-libmpxwrappers
-Driver
+Driver Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 fcilkplus Undocumented
index 01a0385dfa403eaa230ba0d9642e7e86fd60c204..a34d4acf1a26e9d4bb1974f2d7d061979a660eeb 100644 (file)
@@ -951,7 +951,7 @@ Target Report Mask(ISA_RTM) Var(ix86_isa_flags) Save
 Support RTM built-in functions and code generation.
 
 mmpx
-Target Report
+Target Report Deprecated
 Deprecated in GCC 9.  This switch has no effect.
 
 mmwaitx
index 69743125c2277070dff7f0a0b88f994cad580a7c..80f1bd38bc6d3136095819316d53318426b9bdc7 100644 (file)
@@ -280,6 +280,10 @@ The state of this option should be stored in variable @var{var}
 (actually a macro for @code{global_options.x_@var{var}}).
 The way that the state is stored depends on the type of option:
 
+@item Deprecated
+The option is deprecated and every usage of such option will
+result in a warning.
+
 @itemize @bullet
 @item
 If the option uses the @code{Mask} or @code{InverseMask} properties,
index 819a9629ab94f8102f4b4f6d171f223c156eb42a..2c371e5a23aff06d4b219d4151e0bc749217dc3b 100644 (file)
@@ -136,7 +136,8 @@ function switch_bit_fields (flags)
          flag_init("UInteger", flags) \
          flag_init("Host_Wide_Int", hwi) \
          flag_init("ToLower", flags) \
-         flag_init("Report", flags)
+         flag_init("Report", flags) \
+         flag_init("Deprecated", flags)
 
        sub(", $", "", result)
        return result
index c6b94188b402948bf106b8855ecf1abf2d071139..004da73e614bb477106c4159751db8088b288d28 100644 (file)
@@ -667,6 +667,10 @@ decode_cmdline_option (const char **argv, unsigned int lang_mask,
   if (!option_ok_for_language (option, lang_mask))
     errors |= CL_ERR_WRONG_LANG;
 
+  /* Mark all deprecated options.  */
+  if (option->cl_deprecated)
+    errors |= CL_ERR_DEPRECATED;
+
   /* Convert the argument to lowercase if appropriate.  */
   if (arg && option->cl_tolower)
     {
@@ -1250,6 +1254,12 @@ read_cmdline_option (struct gcc_options *opts,
       return;
     }
 
+  if (decoded->errors & CL_ERR_DEPRECATED)
+    {
+      warning_at (loc, 0, "deprecated command line option %qs", opt);
+      return;
+    }
+
   gcc_assert (!decoded->errors);
 
   if (!handle_option (opts, opts_set, decoded, lang_mask, DK_UNSPECIFIED,
index 484fc1c39d9cfb2fa409801283cca61f09c9f321..3c4065eae92b483b9ac2675de5189c6ea384879f 100644 (file)
@@ -100,6 +100,8 @@ struct cl_option
   BOOL_BITFIELD cl_tolower : 1;
   /* Report argument with -fverbose-asm  */
   BOOL_BITFIELD cl_report : 1;
+  /* Deprecated option  */
+  BOOL_BITFIELD cl_deprecated: 1;
   /* Offset of field for this option in struct gcc_options, or
      (unsigned short) -1 if none.  */
   unsigned short flag_var_offset;
@@ -209,6 +211,7 @@ extern const unsigned int cl_enums_count;
 #define CL_ERR_NEGATIVE                (1 << 6) /* Negative form of option
                                            not permitted (together
                                            with OPT_SPECIAL_unknown).  */
+#define CL_ERR_DEPRECATED      (1 << 7) /* Deprecated option.  */
 
 /* Structure describing the result of decoding an option.  */
 
index d5ce43d14837cbb6d51cd96d2dbf540014c2fe80..1155851416eb7a7f25be6991cf47f355d2da5c37 100644 (file)
@@ -1,3 +1,8 @@
+2018-06-12  Martin Liska  <mliska@suse.cz>
+
+       * g++.dg/opt/mpx.C: New test.
+       * gcc.target/i386/mpx.c: New test.
+
 2018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
 
        * gcc.target/arc/builtin_simdarc.c: Update test.
diff --git a/gcc/testsuite/g++.dg/opt/mpx.C b/gcc/testsuite/g++.dg/opt/mpx.C
new file mode 100644 (file)
index 0000000..6ae0cef
--- /dev/null
@@ -0,0 +1,5 @@
+// { dg-do compile }
+// { dg-options "-fcheck-pointer-bounds -fchkp-first-field-has-own-bounds" }
+
+// { dg-warning "deprecated command line option .-fcheck-pointer-bounds." "" { target *-*-* } 0 }
+// { dg-warning "deprecated command line option .-fchkp-first-field-has-own-bounds." "" { target *-*-* } 0 }
diff --git a/gcc/testsuite/gcc.target/i386/mpx.c b/gcc/testsuite/gcc.target/i386/mpx.c
new file mode 100644 (file)
index 0000000..f152ae9
--- /dev/null
@@ -0,0 +1,3 @@
+/* { dg-do compile } */
+// { dg-options "-mmpx" }
+// { dg-warning "deprecated command line option .-mmpx." "" { target *-*-* } 0 }