OSDN Git Service

* basic-block.h (find_fallthru_edge): Define.
[pf3gnuchains/gcc-fork.git] / gcc / opts.h
index 74e5733..a1ab4cb 100644 (file)
@@ -45,11 +45,15 @@ struct cl_option
   const char *opt_text;
   const char *help;
   const char *missing_argument_error;
+  const char *warn_message;
+  const char *alias_arg;
+  const char *neg_alias_arg;
+  unsigned short alias_target;
   unsigned short back_chain;
   unsigned char opt_len;
   int neg_index;
   unsigned int flags;
-  void *flag_var;
+  unsigned short flag_var_offset;
   enum cl_var_type var_type;
   int var_value;
 };
@@ -67,12 +71,12 @@ extern const unsigned int cl_options_count;
 extern const char *const lang_names[];
 extern const unsigned int cl_lang_count;
 
-#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_PARAMS               (1 << 13) /* Fake entry.  Used to display --param info with --help.  */
+#define CL_WARNING             (1 << 14) /* Enables an (optional) warning message.  */
+#define CL_OPTIMIZATION                (1 << 15) /* Enables an (optional) optimization.  */
+#define CL_DRIVER              (1 << 16) /* Driver option.  */
+#define CL_TARGET              (1 << 17) /* Target-specific option.  */
+#define CL_COMMON              (1 << 18) /* Language-independent.  */
 
 #define CL_MIN_OPTION_CLASS    CL_PARAMS
 #define CL_MAX_OPTION_CLASS    CL_COMMON
@@ -82,6 +86,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_SEPARATE_ALIAS      (1 << 19) /* Option is an alias when used with separate argument.  */
 #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.  */
@@ -102,6 +107,9 @@ extern const unsigned int cl_lang_count;
 #define CL_ERR_MISSING_ARG     (1 << 1) /* Argument required but missing.  */
 #define CL_ERR_WRONG_LANG      (1 << 2) /* Option for wrong language.  */
 #define CL_ERR_UINT_ARG                (1 << 3) /* Bad unsigned integer argument.  */
+#define CL_ERR_NEGATIVE                (1 << 4) /* Negative form of option
+                                           not permitted (together
+                                           with OPT_SPECIAL_unknown).  */
 
 /* Structure describing the result of decoding an option.  */
 
@@ -111,6 +119,9 @@ struct cl_decoded_option
      non-options and unknown options.  */
   size_t opt_index;
 
+  /* Any warning to give for use of this option, or NULL if none.  */
+  const char *warn_message;
+
   /* The string argument, or NULL if none.  For OPT_SPECIAL_* cases,
      the option or non-option command-line argument.  */
   const char *arg;
@@ -145,7 +156,9 @@ struct cl_decoded_option
 struct cl_option_handler_func
 {
   /* The function called to handle the option.  */
-  bool (*handler) (const struct cl_decoded_option *decoded,
+  bool (*handler) (struct gcc_options *opts,
+                  struct gcc_options *opts_set,
+                  const struct cl_decoded_option *decoded,
                   unsigned int lang_mask, int kind,
                   const struct cl_option_handlers *handlers);
 
@@ -195,30 +208,52 @@ extern void decode_cmdline_options_to_array (unsigned int argc,
                                             unsigned int lang_mask,
                                             struct cl_decoded_option **decoded_options,
                                             unsigned int *decoded_options_count);
-extern void prune_options (int *argcp, char ***argvp);
-extern void decode_options (unsigned int argc, const char **argv,
-                           struct cl_decoded_option **decoded_options,
-                           unsigned int *decoded_options_count);
-extern int option_enabled (int opt_idx);
-extern bool get_option_state (int, struct cl_option_state *);
-extern void set_option (int opt_index, int value, const char *arg, int);
-bool handle_option (const struct cl_decoded_option *decoded,
+extern void init_options_once (void);
+extern void init_options_struct (struct gcc_options *opts,
+                                struct gcc_options *opts_set);
+extern void decode_cmdline_options_to_array_default_mask (unsigned int argc,
+                                                         const char **argv, 
+                                                         struct cl_decoded_option **decoded_options,
+                                                         unsigned int *decoded_options_count);
+extern void decode_options (struct gcc_options *opts,
+                           struct gcc_options *opts_set,
+                           struct cl_decoded_option *decoded_options,
+                           unsigned int decoded_options_count);
+extern int option_enabled (int opt_idx, void *opts);
+extern bool get_option_state (struct gcc_options *, int,
+                             struct cl_option_state *);
+extern void set_option (struct gcc_options *opts,
+                       struct gcc_options *opts_set,
+                       int opt_index, int value, const char *arg, int kind,
+                       diagnostic_context *dc);
+extern void *option_flag_var (int opt_index, struct gcc_options *opts);
+bool handle_option (struct gcc_options *opts,
+                   struct gcc_options *opts_set,
+                   const struct cl_decoded_option *decoded,
                    unsigned int lang_mask, int kind,
-                   const struct cl_option_handlers *handlers);
-bool handle_generated_option (size_t opt_index, const char *arg, int value,
+                   const struct cl_option_handlers *handlers,
+                   bool generated_p, diagnostic_context *dc);
+bool handle_generated_option (struct gcc_options *opts,
+                             struct gcc_options *opts_set,
+                             size_t opt_index, const char *arg, int value,
                              unsigned int lang_mask, int kind,
-                             const struct cl_option_handlers *handlers);
+                             const struct cl_option_handlers *handlers,
+                             diagnostic_context *dc);
 void generate_option (size_t opt_index, const char *arg, int value,
                      unsigned int lang_mask,
                      struct cl_decoded_option *decoded);
 void generate_option_input_file (const char *file,
                                 struct cl_decoded_option *decoded);
-extern void read_cmdline_option (struct cl_decoded_option *decoded,
+extern void read_cmdline_option (struct gcc_options *opts,
+                                struct gcc_options *opts_set,
+                                struct cl_decoded_option *decoded,
                                 unsigned int lang_mask,
-                                const struct cl_option_handlers *handlers);
+                                const struct cl_option_handlers *handlers,
+                                diagnostic_context *dc);
 extern void register_warning_as_error_callback (void (*callback) (int));
 extern void enable_warning_as_error (const char *arg, int value,
                                     unsigned int lang_mask,
-                                    const struct cl_option_handlers *handlers);
+                                    const struct cl_option_handlers *handlers,
+                                    diagnostic_context *dc);
 extern void print_ignored_options (void);
 #endif