Message ID | Pine.LNX.4.64.1008132321170.10746@digraph.polyomino.org.uk |
---|---|
State | New |
Headers | show |
On Sat, Aug 14, 2010 at 1:21 AM, Joseph S. Myers <joseph@codesourcery.com> wrote: > This patch, relative to a tree with > <http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00949.html> (pending > Fortran and Java review) applied, arranges for -MD and -MMD to be > supported by both the driver and cc1 with different conventions about > whether those options take an argument, for compatibility with the > "several projects that rely on -Wp,-MD or -Wp,-MMD" mentioned in > <http://gcc.gnu.org/ml/gcc/2010-08/msg00220.html>. > > Bootstrapped with no regressions on x86_64-unknown-linux-gnu. OK to > commit? Ok. Thanks, Richard. > 2010-08-13 Joseph Myers <joseph@codesourcery.com> > > * doc/options.texi (NoDriverArg): Document. > * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of > -MDX and -MMDX. > * opt-functions.awk (switch_flags): Handle NoDriverArg. > * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE > marking for CL_NO_DRIVER_ARG options when in the driver. > * opts.h (CL_NO_DRIVER_ARG): Define. > (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET, > CL_COMMON): Update values. > > c-family: > 2010-08-13 Joseph Myers <joseph@codesourcery.com> > > * c.opt (MDX): Change back to MD. Mark NoDriverArg instead of > RejectDriver. > (MMDX): Change back to MMD. Mark NoDriverArg instead of > RejectDriver. > * c-opts.c (c_common_handle_option): Use OPT_MD and OPT_MMD > instead of OPT_MDX and OPT_MMDX. > > fortran: > 2010-08-13 Joseph Myers <joseph@codesourcery.com> > > * lang.opt (MDX): Change back to MD. Mark NoDriverArg instead of > RejectDriver. > (MMDX): Change back to MMD. Mark NoDriverArg instead of > RejectDriver. > * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of > OPT_MDX and OPT_MMDX. > > diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/c-family/c-opts.c gcc-mainline/gcc/c-family/c-opts.c > --- gcc-mainline-driveropts/gcc/c-family/c-opts.c 2010-08-12 15:57:01.000000000 -0700 > +++ gcc-mainline/gcc/c-family/c-opts.c 2010-08-13 13:22:33.000000000 -0700 > @@ -398,9 +398,9 @@ c_common_handle_option (size_t scode, co > flag_no_output = 1; > break; > > - case OPT_MDX: > - case OPT_MMDX: > - cpp_opts->deps.style = (code == OPT_MDX ? DEPS_SYSTEM: DEPS_USER); > + case OPT_MD: > + case OPT_MMD: > + cpp_opts->deps.style = (code == OPT_MD ? DEPS_SYSTEM: DEPS_USER); > cpp_opts->deps.need_preprocessor_output = true; > deps_file = arg; > break; > diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/c-family/c.opt gcc-mainline/gcc/c-family/c.opt > --- gcc-mainline-driveropts/gcc/c-family/c.opt 2010-08-12 15:57:56.000000000 -0700 > +++ gcc-mainline/gcc/c-family/c.opt 2010-08-13 13:22:58.000000000 -0700 > @@ -72,9 +72,9 @@ M > C ObjC C++ ObjC++ > Generate make dependencies > > -MDX > -C ObjC C++ ObjC++ RejectDriver Separate MissingArgError(missing filename after %qs) > --MD Generate make dependencies and compile > +MD > +C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs) > +Generate make dependencies and compile > > MF > C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs) > @@ -88,9 +88,9 @@ MM > C ObjC C++ ObjC++ > Like -M but ignore system header files > > -MMDX > -C ObjC C++ ObjC++ RejectDriver Separate MissingArgError(missing filename after %qs) > --MMD Like -MD but ignore system header files > +MMD > +C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs) > +Like -MD but ignore system header files > > MP > C ObjC C++ ObjC++ > diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/doc/options.texi gcc-mainline/gcc/doc/options.texi > --- gcc-mainline-driveropts/gcc/doc/options.texi 2010-08-12 15:57:56.000000000 -0700 > +++ gcc-mainline/gcc/doc/options.texi 2010-08-13 13:25:47.000000000 -0700 > @@ -159,6 +159,12 @@ option handler. @code{UInteger} should > @code{-falign-loops}=@var{n} are supported to make sure the saved > options are given a full integer. > > +@item NoDriverArg > +For an option marked @code{Separate}, the option only takes an > +argument in the compiler proper, not in the driver. This is for > +compatibility with existing options that are used both directly and > +via @option{-Wp,}; new options should not have this property. > + > @item Var(@var{var}) > The state of this option should be stored in variable @var{var}. > The way that the state is stored depends on the type of option: > diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/fortran/cpp.c gcc-mainline/gcc/fortran/cpp.c > --- gcc-mainline-driveropts/gcc/fortran/cpp.c 2010-08-12 15:57:11.000000000 -0700 > +++ gcc-mainline/gcc/fortran/cpp.c 2010-08-13 13:21:52.000000000 -0700 > @@ -456,11 +456,11 @@ gfc_cpp_handle_option (size_t scode, con > gfc_cpp_option.deps = 1; > break; > > - case OPT_MMDX: > + case OPT_MMD: > gfc_cpp_option.deps_skip_system = 1; > /* fall through */ > > - case OPT_MDX: > + case OPT_MD: > gfc_cpp_option.deps = 1; > gfc_cpp_option.deps_filename = arg; > break; > diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/fortran/lang.opt gcc-mainline/gcc/fortran/lang.opt > --- gcc-mainline-driveropts/gcc/fortran/lang.opt 2010-08-12 15:57:56.000000000 -0700 > +++ gcc-mainline/gcc/fortran/lang.opt 2010-08-13 13:21:25.000000000 -0700 > @@ -60,8 +60,8 @@ M > Fortran > ; Documented in C > > -MDX > -Fortran Separate RejectDriver > +MD > +Fortran Separate NoArgDriver > ; Documented in C > > MF > @@ -76,8 +76,8 @@ MM > Fortran > ; Documented in C > > -MMDX > -Fortran Separate RejectDriver > +MMD > +Fortran Separate NoArgDriver > ; Documented in C > > MP > diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/gcc.c gcc-mainline/gcc/gcc.c > --- gcc-mainline-driveropts/gcc/gcc.c 2010-08-12 15:57:56.000000000 -0700 > +++ gcc-mainline/gcc/gcc.c 2010-08-13 13:22:41.000000000 -0700 > @@ -767,8 +767,8 @@ static const char *trad_capable_cpp = > file that happens to exist is up-to-date. */ > static const char *cpp_unique_options = > "%{!Q:-quiet} %{nostdinc*} %{C} %{CC} %{v} %{I*&F*} %{P} %I\ > - %{MD:-MDX %{!o:%b.d}%{o*:%.d%*}}\ > - %{MMD:-MMDX %{!o:%b.d}%{o*:%.d%*}}\ > + %{MD:-MD %{!o:%b.d}%{o*:%.d%*}}\ > + %{MMD:-MMD %{!o:%b.d}%{o*:%.d%*}}\ > %{M} %{MM} %{MF*} %{MG} %{MP} %{MQ*} %{MT*}\ > %{!E:%{!M:%{!MM:%{!MT:%{!MQ:%{MD|MMD:%{o*:-MQ %*}}}}}}}\ > %{remap} %{g3|ggdb3|gstabs3|gcoff3|gxcoff3|gvms3:-dD}\ > diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/opt-functions.awk gcc-mainline/gcc/opt-functions.awk > --- gcc-mainline-driveropts/gcc/opt-functions.awk 2010-08-12 15:57:56.000000000 -0700 > +++ gcc-mainline/gcc/opt-functions.awk 2010-08-13 13:23:45.000000000 -0700 > @@ -80,6 +80,7 @@ function switch_flags (flags) > test_flag("Target", flags, " | CL_TARGET") \ > test_flag("Driver", flags, " | CL_DRIVER") \ > test_flag("RejectDriver", flags, " | CL_REJECT_DRIVER") \ > + test_flag("NoDriverArg", flags, " | CL_NO_DRIVER_ARG") \ > test_flag("Save", flags, " | CL_SAVE") \ > test_flag("Joined", flags, " | CL_JOINED") \ > test_flag("JoinedOrMissing", flags, " | CL_JOINED | CL_MISSING_OK") \ > diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/opts-common.c gcc-mainline/gcc/opts-common.c > --- gcc-mainline-driveropts/gcc/opts-common.c 2010-08-12 15:57:56.000000000 -0700 > +++ gcc-mainline/gcc/opts-common.c 2010-08-13 13:49:26.000000000 -0700 > @@ -145,6 +145,8 @@ decode_cmdline_option (const char **argv > char *p; > const struct cl_option *option; > int errors = 0; > + bool separate_arg_flag; > + bool joined_arg_flag; > > opt = argv[0]; > > @@ -186,8 +188,15 @@ decode_cmdline_option (const char **argv > if (option->flags & CL_DISABLED) > errors |= CL_ERR_DISABLED; > > + /* Determine whether there may be a separate argument based on > + whether this option is being processed for the driver. */ > + separate_arg_flag = ((option->flags & CL_SEPARATE) > + && !((option->flags & CL_NO_DRIVER_ARG) > + && (lang_mask & CL_DRIVER))); > + joined_arg_flag = (option->flags & CL_JOINED) != 0; > + > /* Sort out any argument the switch takes. */ > - if (option->flags & CL_JOINED) > + if (joined_arg_flag) > { > /* Have arg point to the original switch. This is because > some code, such as disable_builtin_function, expects its > @@ -198,7 +207,7 @@ decode_cmdline_option (const char **argv > > if (*arg == '\0' && !(option->flags & CL_MISSING_OK)) > { > - if (option->flags & CL_SEPARATE) > + if (separate_arg_flag) > { > arg = argv[1]; > result = 2; > @@ -210,7 +219,7 @@ decode_cmdline_option (const char **argv > arg = NULL; > } > } > - else if (option->flags & CL_SEPARATE) > + else if (separate_arg_flag) > { > arg = argv[1]; > result = 2; > @@ -228,7 +237,7 @@ decode_cmdline_option (const char **argv > are specified. */ > errors |= CL_ERR_WRONG_LANG; > > - if (arg == NULL && (option->flags & (CL_JOINED | CL_SEPARATE))) > + if (arg == NULL && (separate_arg_flag || joined_arg_flag)) > errors |= CL_ERR_MISSING_ARG; > > /* If the switch takes an integer, convert it. */ > diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/opts.h gcc-mainline/gcc/opts.h > --- gcc-mainline-driveropts/gcc/opts.h 2010-08-12 15:57:56.000000000 -0700 > +++ gcc-mainline/gcc/opts.h 2010-08-13 13:30:01.000000000 -0700 > @@ -67,12 +67,12 @@ extern const unsigned int cl_options_cou > extern const char *const lang_names[]; > extern const unsigned int cl_lang_count; > > -#define CL_PARAMS (1 << 15) /* Fake entry. Used to display --param info with --help. */ > -#define CL_WARNING (1 << 16) /* Enables an (optional) warning message. */ > -#define CL_OPTIMIZATION (1 << 17) /* Enables an (optional) optimization. */ > -#define CL_DRIVER (1 << 18) /* Driver option. */ > -#define CL_TARGET (1 << 19) /* Target-specific option. */ > -#define CL_COMMON (1 << 20) /* Language-independent. */ > +#define CL_PARAMS (1 << 14) /* Fake entry. Used to display --param info with --help. */ > +#define CL_WARNING (1 << 15) /* Enables an (optional) warning message. */ > +#define CL_OPTIMIZATION (1 << 16) /* Enables an (optional) optimization. */ > +#define CL_DRIVER (1 << 17) /* Driver option. */ > +#define CL_TARGET (1 << 18) /* Target-specific option. */ > +#define CL_COMMON (1 << 19) /* Language-independent. */ > > #define CL_MIN_OPTION_CLASS CL_PARAMS > #define CL_MAX_OPTION_CLASS CL_COMMON > @@ -82,6 +82,7 @@ extern const unsigned int cl_lang_count; > This distinction is important because --help will not list options > which only have these higher bits set. */ > > +#define CL_NO_DRIVER_ARG (1 << 20) /* Option takes no argument in the driver. */ > #define CL_REJECT_DRIVER (1 << 21) /* Reject this option in the driver. */ > #define CL_SAVE (1 << 22) /* Target-specific option for attribute. */ > #define CL_DISABLED (1 << 23) /* Disabled in this configuration. */ > > -- > Joseph S. Myers > joseph@codesourcery.com >
On 08/14/2010 01:37 PM, Richard Guenther wrote: > On Sat, Aug 14, 2010 at 1:21 AM, Joseph S. Myers > <joseph@codesourcery.com> wrote: >> This patch, relative to a tree with >> <http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00949.html> (pending >> Fortran and Java review) applied, The Java part of that patch is OK. Andrew.
On 08/14/2010 01:21 AM, Joseph S. Myers wrote: > This patch, relative to a tree with > <http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00949.html> (pending > Fortran and Java review) applied, arranges for -MD and -MMD to be > supported by both the driver and cc1 with different conventions about > whether those options take an argument, for compatibility with the > "several projects that rely on -Wp,-MD or -Wp,-MMD" mentioned in > <http://gcc.gnu.org/ml/gcc/2010-08/msg00220.html>. > > Bootstrapped with no regressions on x86_64-unknown-linux-gnu. OK to > commit? > > fortran: > 2010-08-13 Joseph Myers<joseph@codesourcery.com> > > * lang.opt (MDX): Change back to MD. Mark NoDriverArg instead of > RejectDriver. > (MMDX): Change back to MMD. Mark NoDriverArg instead of > RejectDriver. > * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of > OPT_MDX and OPT_MMDX. That part is OK - thanks for the patch and for taking user concerns into account. Tobias PS: Please CC fortran@ if you request Fortran reviews, it increases the chance of faster review.
diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/c-family/c-opts.c gcc-mainline/gcc/c-family/c-opts.c --- gcc-mainline-driveropts/gcc/c-family/c-opts.c 2010-08-12 15:57:01.000000000 -0700 +++ gcc-mainline/gcc/c-family/c-opts.c 2010-08-13 13:22:33.000000000 -0700 @@ -398,9 +398,9 @@ c_common_handle_option (size_t scode, co flag_no_output = 1; break; - case OPT_MDX: - case OPT_MMDX: - cpp_opts->deps.style = (code == OPT_MDX ? DEPS_SYSTEM: DEPS_USER); + case OPT_MD: + case OPT_MMD: + cpp_opts->deps.style = (code == OPT_MD ? DEPS_SYSTEM: DEPS_USER); cpp_opts->deps.need_preprocessor_output = true; deps_file = arg; break; diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/c-family/c.opt gcc-mainline/gcc/c-family/c.opt --- gcc-mainline-driveropts/gcc/c-family/c.opt 2010-08-12 15:57:56.000000000 -0700 +++ gcc-mainline/gcc/c-family/c.opt 2010-08-13 13:22:58.000000000 -0700 @@ -72,9 +72,9 @@ M C ObjC C++ ObjC++ Generate make dependencies -MDX -C ObjC C++ ObjC++ RejectDriver Separate MissingArgError(missing filename after %qs) --MD Generate make dependencies and compile +MD +C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs) +Generate make dependencies and compile MF C ObjC C++ ObjC++ Joined Separate MissingArgError(missing filename after %qs) @@ -88,9 +88,9 @@ MM C ObjC C++ ObjC++ Like -M but ignore system header files -MMDX -C ObjC C++ ObjC++ RejectDriver Separate MissingArgError(missing filename after %qs) --MMD Like -MD but ignore system header files +MMD +C ObjC C++ ObjC++ NoDriverArg Separate MissingArgError(missing filename after %qs) +Like -MD but ignore system header files MP C ObjC C++ ObjC++ diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/doc/options.texi gcc-mainline/gcc/doc/options.texi --- gcc-mainline-driveropts/gcc/doc/options.texi 2010-08-12 15:57:56.000000000 -0700 +++ gcc-mainline/gcc/doc/options.texi 2010-08-13 13:25:47.000000000 -0700 @@ -159,6 +159,12 @@ option handler. @code{UInteger} should @code{-falign-loops}=@var{n} are supported to make sure the saved options are given a full integer. +@item NoDriverArg +For an option marked @code{Separate}, the option only takes an +argument in the compiler proper, not in the driver. This is for +compatibility with existing options that are used both directly and +via @option{-Wp,}; new options should not have this property. + @item Var(@var{var}) The state of this option should be stored in variable @var{var}. The way that the state is stored depends on the type of option: diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/fortran/cpp.c gcc-mainline/gcc/fortran/cpp.c --- gcc-mainline-driveropts/gcc/fortran/cpp.c 2010-08-12 15:57:11.000000000 -0700 +++ gcc-mainline/gcc/fortran/cpp.c 2010-08-13 13:21:52.000000000 -0700 @@ -456,11 +456,11 @@ gfc_cpp_handle_option (size_t scode, con gfc_cpp_option.deps = 1; break; - case OPT_MMDX: + case OPT_MMD: gfc_cpp_option.deps_skip_system = 1; /* fall through */ - case OPT_MDX: + case OPT_MD: gfc_cpp_option.deps = 1; gfc_cpp_option.deps_filename = arg; break; diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/fortran/lang.opt gcc-mainline/gcc/fortran/lang.opt --- gcc-mainline-driveropts/gcc/fortran/lang.opt 2010-08-12 15:57:56.000000000 -0700 +++ gcc-mainline/gcc/fortran/lang.opt 2010-08-13 13:21:25.000000000 -0700 @@ -60,8 +60,8 @@ M Fortran ; Documented in C -MDX -Fortran Separate RejectDriver +MD +Fortran Separate NoArgDriver ; Documented in C MF @@ -76,8 +76,8 @@ MM Fortran ; Documented in C -MMDX -Fortran Separate RejectDriver +MMD +Fortran Separate NoArgDriver ; Documented in C MP diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/gcc.c gcc-mainline/gcc/gcc.c --- gcc-mainline-driveropts/gcc/gcc.c 2010-08-12 15:57:56.000000000 -0700 +++ gcc-mainline/gcc/gcc.c 2010-08-13 13:22:41.000000000 -0700 @@ -767,8 +767,8 @@ static const char *trad_capable_cpp = file that happens to exist is up-to-date. */ static const char *cpp_unique_options = "%{!Q:-quiet} %{nostdinc*} %{C} %{CC} %{v} %{I*&F*} %{P} %I\ - %{MD:-MDX %{!o:%b.d}%{o*:%.d%*}}\ - %{MMD:-MMDX %{!o:%b.d}%{o*:%.d%*}}\ + %{MD:-MD %{!o:%b.d}%{o*:%.d%*}}\ + %{MMD:-MMD %{!o:%b.d}%{o*:%.d%*}}\ %{M} %{MM} %{MF*} %{MG} %{MP} %{MQ*} %{MT*}\ %{!E:%{!M:%{!MM:%{!MT:%{!MQ:%{MD|MMD:%{o*:-MQ %*}}}}}}}\ %{remap} %{g3|ggdb3|gstabs3|gcoff3|gxcoff3|gvms3:-dD}\ diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/opt-functions.awk gcc-mainline/gcc/opt-functions.awk --- gcc-mainline-driveropts/gcc/opt-functions.awk 2010-08-12 15:57:56.000000000 -0700 +++ gcc-mainline/gcc/opt-functions.awk 2010-08-13 13:23:45.000000000 -0700 @@ -80,6 +80,7 @@ function switch_flags (flags) test_flag("Target", flags, " | CL_TARGET") \ test_flag("Driver", flags, " | CL_DRIVER") \ test_flag("RejectDriver", flags, " | CL_REJECT_DRIVER") \ + test_flag("NoDriverArg", flags, " | CL_NO_DRIVER_ARG") \ test_flag("Save", flags, " | CL_SAVE") \ test_flag("Joined", flags, " | CL_JOINED") \ test_flag("JoinedOrMissing", flags, " | CL_JOINED | CL_MISSING_OK") \ diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/opts-common.c gcc-mainline/gcc/opts-common.c --- gcc-mainline-driveropts/gcc/opts-common.c 2010-08-12 15:57:56.000000000 -0700 +++ gcc-mainline/gcc/opts-common.c 2010-08-13 13:49:26.000000000 -0700 @@ -145,6 +145,8 @@ decode_cmdline_option (const char **argv char *p; const struct cl_option *option; int errors = 0; + bool separate_arg_flag; + bool joined_arg_flag; opt = argv[0]; @@ -186,8 +188,15 @@ decode_cmdline_option (const char **argv if (option->flags & CL_DISABLED) errors |= CL_ERR_DISABLED; + /* Determine whether there may be a separate argument based on + whether this option is being processed for the driver. */ + separate_arg_flag = ((option->flags & CL_SEPARATE) + && !((option->flags & CL_NO_DRIVER_ARG) + && (lang_mask & CL_DRIVER))); + joined_arg_flag = (option->flags & CL_JOINED) != 0; + /* Sort out any argument the switch takes. */ - if (option->flags & CL_JOINED) + if (joined_arg_flag) { /* Have arg point to the original switch. This is because some code, such as disable_builtin_function, expects its @@ -198,7 +207,7 @@ decode_cmdline_option (const char **argv if (*arg == '\0' && !(option->flags & CL_MISSING_OK)) { - if (option->flags & CL_SEPARATE) + if (separate_arg_flag) { arg = argv[1]; result = 2; @@ -210,7 +219,7 @@ decode_cmdline_option (const char **argv arg = NULL; } } - else if (option->flags & CL_SEPARATE) + else if (separate_arg_flag) { arg = argv[1]; result = 2; @@ -228,7 +237,7 @@ decode_cmdline_option (const char **argv are specified. */ errors |= CL_ERR_WRONG_LANG; - if (arg == NULL && (option->flags & (CL_JOINED | CL_SEPARATE))) + if (arg == NULL && (separate_arg_flag || joined_arg_flag)) errors |= CL_ERR_MISSING_ARG; /* If the switch takes an integer, convert it. */ diff -rupN --exclude=.svn gcc-mainline-driveropts/gcc/opts.h gcc-mainline/gcc/opts.h --- gcc-mainline-driveropts/gcc/opts.h 2010-08-12 15:57:56.000000000 -0700 +++ gcc-mainline/gcc/opts.h 2010-08-13 13:30:01.000000000 -0700 @@ -67,12 +67,12 @@ extern const unsigned int cl_options_cou extern const char *const lang_names[]; extern const unsigned int cl_lang_count; -#define CL_PARAMS (1 << 15) /* Fake entry. Used to display --param info with --help. */ -#define CL_WARNING (1 << 16) /* Enables an (optional) warning message. */ -#define CL_OPTIMIZATION (1 << 17) /* Enables an (optional) optimization. */ -#define CL_DRIVER (1 << 18) /* Driver option. */ -#define CL_TARGET (1 << 19) /* Target-specific option. */ -#define CL_COMMON (1 << 20) /* Language-independent. */ +#define CL_PARAMS (1 << 14) /* Fake entry. Used to display --param info with --help. */ +#define CL_WARNING (1 << 15) /* Enables an (optional) warning message. */ +#define CL_OPTIMIZATION (1 << 16) /* Enables an (optional) optimization. */ +#define CL_DRIVER (1 << 17) /* Driver option. */ +#define CL_TARGET (1 << 18) /* Target-specific option. */ +#define CL_COMMON (1 << 19) /* Language-independent. */ #define CL_MIN_OPTION_CLASS CL_PARAMS #define CL_MAX_OPTION_CLASS CL_COMMON @@ -82,6 +82,7 @@ extern const unsigned int cl_lang_count; This distinction is important because --help will not list options which only have these higher bits set. */ +#define CL_NO_DRIVER_ARG (1 << 20) /* Option takes no argument in the driver. */ #define CL_REJECT_DRIVER (1 << 21) /* Reject this option in the driver. */ #define CL_SAVE (1 << 22) /* Target-specific option for attribute. */ #define CL_DISABLED (1 << 23) /* Disabled in this configuration. */