OSDN Git Service

* config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
[pf3gnuchains/gcc-fork.git] / gcc / opts.h
index cffeeba..2f54340 100644 (file)
@@ -1,11 +1,11 @@
 /* Command line option handling.
 /* Command line option handling.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
 GCC is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
 
 This file is part of GCC.
 
 GCC is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
+Software Foundation; either version 3, or (at your option) any later
 version.
 
 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
 version.
 
 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -14,14 +14,30 @@ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
 You should have received a copy of the GNU General Public License
 for more details.
 
 You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING.  If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.  */
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #ifndef GCC_OPTS_H
 #define GCC_OPTS_H
 
 
 #ifndef GCC_OPTS_H
 #define GCC_OPTS_H
 
-extern void decode_options (unsigned int argc, const char **argv);
+/* Specifies how a switch's VAR_VALUE relates to its FLAG_VAR.  */
+enum cl_var_type {
+  /* The switch is enabled when FLAG_VAR is nonzero.  */
+  CLVC_BOOLEAN,
+
+  /* The switch is enabled when FLAG_VAR == VAR_VALUE.  */
+  CLVC_EQUAL,
+
+  /* The switch is enabled when VAR_VALUE is not set in FLAG_VAR.  */
+  CLVC_BIT_CLEAR,
+
+  /* The switch is enabled when VAR_VALUE is set in FLAG_VAR.  */
+  CLVC_BIT_SET,
+
+  /* The switch takes a string argument and FLAG_VAR points to that
+     argument.  */
+  CLVC_STRING
+};
 
 struct cl_option
 {
 
 struct cl_option
 {
@@ -29,18 +45,65 @@ struct cl_option
   const char *help;
   unsigned short back_chain;
   unsigned char opt_len;
   const char *help;
   unsigned short back_chain;
   unsigned char opt_len;
+  int neg_index;
   unsigned int flags;
   unsigned int flags;
+  void *flag_var;
+  enum cl_var_type var_type;
+  int var_value;
+};
+
+/* Records that the state of an option consists of SIZE bytes starting
+   at DATA.  DATA might point to CH in some cases.  */
+struct cl_option_state {
+  const void *data;
+  size_t size;
+  char ch;
 };
 
 extern const struct cl_option cl_options[];
 extern const unsigned int cl_options_count;
 extern const char *const lang_names[];
 };
 
 extern const struct cl_option cl_options[];
 extern const unsigned int cl_options_count;
 extern const char *const lang_names[];
+extern const unsigned int cl_lang_count;
+extern bool no_unit_at_a_time_default;
+
+#define CL_PARAMS               (1 << 18) /* Fake entry.  Used to display --param info with --help.  */
+#define CL_WARNING             (1 << 19) /* Enables an (optional) warning message.  */
+#define CL_OPTIMIZATION                (1 << 20) /* Enables an (optional) optimization.  */
+#define CL_TARGET              (1 << 21) /* Target-specific option.  */
+#define CL_COMMON              (1 << 22) /* Language-independent.  */
 
 
-#define CL_JOINED              (1 << 24) /* If takes joined argument.  */
-#define CL_SEPARATE            (1 << 25) /* If takes a separate argument.  */
-#define CL_REJECT_NEGATIVE     (1 << 26) /* Reject no- form.  */
-#define CL_MISSING_OK          (1 << 27) /* Missing argument OK (joined).  */
-#define CL_UINTEGER            (1 << 28) /* Argument is an integer >=0.  */
-#define CL_COMMON              (1 << 29) /* Language-independent.  */
+#define CL_MIN_OPTION_CLASS    CL_PARAMS
+#define CL_MAX_OPTION_CLASS    CL_COMMON
+
+/* From here on the bits describe attributes of the options.
+   Before this point the bits have described the class of the option.
+   This distinction is important because --help will not list options
+   which only have these higher bits set.  */
+
+#define CL_DISABLED            (1 << 23) /* Disabled in this configuration.  */
+#define CL_REPORT              (1 << 24) /* Report argument with -fverbose-asm  */
+#define CL_JOINED              (1 << 25) /* If takes joined argument.  */
+#define CL_SEPARATE            (1 << 26) /* If takes a separate argument.  */
+#define CL_REJECT_NEGATIVE     (1 << 27) /* Reject no- form.  */
+#define CL_MISSING_OK          (1 << 28) /* Missing argument OK (joined).  */
+#define CL_UINTEGER            (1 << 29) /* Argument is an integer >=0.  */
+#define CL_UNDOCUMENTED                (1 << 30) /* Do not output with --help.  */
+
+/* Input file names.  */
+
+extern const char **in_fnames;
+
+/* The count of input filenames.  */
+
+extern unsigned num_in_fnames;
+
+size_t find_opt (const char *input, int lang_mask);
+extern void prune_options (int *argcp, char ***argvp);
+extern void decode_options (unsigned int argc, const char **argv);
+extern int option_enabled (int opt_idx);
+extern bool get_option_state (int, struct cl_option_state *);
 
 
+extern void enable_warning_as_error (const char *arg, int value,
+                                    unsigned int lang_mask);
+extern void print_ignored_options (void);
 #endif
 #endif