diff options
author | Richard Sandiford <rsandifo@redhat.com> | 2005-05-16 12:30:06 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2005-05-16 12:30:06 +0000 |
commit | aeb70e782ac3089f3931b58b1291c1196a8e6c8f (patch) | |
tree | 1a880bfd7d5dee689ffa88c4d78e2661c5086ffd /gcc | |
parent | 8b37cc6429c7771e6501354521446cfe47f157ff (diff) | |
download | gcc-aeb70e782ac3089f3931b58b1291c1196a8e6c8f.zip gcc-aeb70e782ac3089f3931b58b1291c1196a8e6c8f.tar.gz gcc-aeb70e782ac3089f3931b58b1291c1196a8e6c8f.tar.bz2 |
Makefile.in (options.c): Tell optc-gen.awk to include config.h, system.h, coretypes.h and tm.h.
* Makefile.in (options.c): Tell optc-gen.awk to include config.h,
system.h, coretypes.h and tm.h.
(options.o): Update dependencies accordingly.
* optc-gen.awk: Allow header_name to be a list of filenames.
Handle the "Condition" flag.
* opts.h (CL_DISABLED): New flag.
* opts.c (handle_option): Print an error for CL_DISABLED options.
* doc/options.texi: Document the "Condition" option flag.
From-SVN: r99774
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/Makefile.in | 4 | ||||
-rw-r--r-- | gcc/doc/options.texi | 7 | ||||
-rw-r--r-- | gcc/optc-gen.awk | 22 | ||||
-rw-r--r-- | gcc/opts.c | 8 | ||||
-rw-r--r-- | gcc/opts.h | 1 |
6 files changed, 46 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 866c8b2..061d63e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2005-05-16 Richard Sandiford <rsandifo@redhat.com> + + * Makefile.in (options.c): Tell optc-gen.awk to include config.h, + system.h, coretypes.h and tm.h. + (options.o): Update dependencies accordingly. + * optc-gen.awk: Allow header_name to be a list of filenames. + Handle the "Condition" flag. + * opts.h (CL_DISABLED): New flag. + * opts.c (handle_option): Print an error for CL_DISABLED options. + * doc/options.texi: Document the "Condition" option flag. + 2005-05-16 Paolo Bonzini <bonzini@gnu.org> * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR. diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 517d5d8..8d0d15c 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -1569,7 +1569,7 @@ s-options: $(ALL_OPT_FILES) Makefile $(srcdir)/opt-gather.awk options.c: optionlist $(srcdir)/opt-functions.awk $(srcdir)/optc-gen.awk $(AWK) -f $(srcdir)/opt-functions.awk -f $(srcdir)/optc-gen.awk \ - -v header_name="options.h" < $< > $@ + -v header_name="config.h system.h coretypes.h tm.h" < $< > $@ options.h: s-options-h ; @true s-options-h: optionlist $(srcdir)/opt-functions.awk $(srcdir)/opth-gen.awk @@ -1578,7 +1578,7 @@ s-options-h: optionlist $(srcdir)/opt-functions.awk $(srcdir)/opth-gen.awk $(SHELL) $(srcdir)/../move-if-change tmp-options.h options.h $(STAMP) $@ -options.o: options.c options.h opts.h intl.h +options.o: options.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) opts.h intl.h dumpvers: dumpvers.c diff --git a/gcc/doc/options.texi b/gcc/doc/options.texi index 2ab1893..307a325 100644 --- a/gcc/doc/options.texi +++ b/gcc/doc/options.texi @@ -191,4 +191,11 @@ The state of the option should be printed by @option{-fverbose-asm}. @item Undocumented The option is deliberately missing documentation and should not be included in the @option{--help} output. + +@item Condition(@var{cond}) +The option should only be accepted if preprocessor condition +@var{cond} is true. Note that any C declarations associated with the +option will be present even if @var{cond} is false; @var{cond} simply +controls whether the option is accepted and whether it is printed in +the @option{--help} output. @end table diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk index 5476674..e647cd9 100644 --- a/gcc/optc-gen.awk +++ b/gcc/optc-gen.awk @@ -57,7 +57,9 @@ END { print "/* This file is auto-generated by opts.sh. */" print "" print "#include <intl.h>" -print "#include " quote header_name quote +n_headers = split(header_name, headers, " ") +for (i = 1; i <= n_headers; i++) + print "#include " quote headers[i] quote print "#include " quote "opts.h" quote print "" @@ -135,10 +137,20 @@ for (i = 0; i < n_opts; i++) { else hlp = quote help[i] quote; - printf(" { %c-%s%c,\n %s,\n %s, %u, %s, %s, %s }%s\n", - quote, opts[i], quote, hlp, back_chain[i], len, - switch_flags(flags[i]), - var_ref(flags[i]), var_set(flags[i]), comma) + printf(" { %c-%s%c,\n %s,\n %s, %u,\n", + quote, opts[i], quote, hlp, back_chain[i], len) + condition = opt_args("Condition", flags[i]) + cl_flags = switch_flags(flags[i]) + if (condition != "") + printf("#if %s\n" \ + " %s,\n" \ + "#else\n" \ + " CL_DISABLED,\n" \ + "#endif\n", + condition, cl_flags, cl_flags) + else + printf(" %s,\n", cl_flags) + printf(" %s, %s }%s\n", var_ref(flags[i]), var_set(flags[i]), comma) } print "};" @@ -315,6 +315,14 @@ handle_option (const char **argv, unsigned int lang_mask) /* We've recognized this switch. */ result = 1; + /* Check to see if the option is disabled for this configuration. */ + if (option->flags & CL_DISABLED) + { + error ("command line option %qs" + " is not supported by this configuration", opt); + goto done; + } + /* Sort out any argument the switch takes. */ if (option->flags & CL_JOINED) { @@ -52,6 +52,7 @@ extern const struct cl_option cl_options[]; extern const unsigned int cl_options_count; extern const char *const lang_names[]; +#define CL_DISABLED (1 << 21) /* Disabled in this configuration. */ #define CL_TARGET (1 << 22) /* Target-specific option. */ #define CL_REPORT (1 << 23) /* Report argument with -fverbose-asm */ #define CL_JOINED (1 << 24) /* If takes joined argument. */ |