OSDN Git Service

PR middle-end/40500
[pf3gnuchains/gcc-fork.git] / gcc / opts.h
index bfa9ccc..b4be111 100644 (file)
@@ -1,11 +1,12 @@
 /* Command line option handling.
 /* Command line option handling.
-   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008
+   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,9 +15,8 @@ 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, 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301, 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
@@ -46,6 +46,7 @@ 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;
   void *flag_var;
   enum cl_var_type var_type;
   unsigned int flags;
   void *flag_var;
   enum cl_var_type var_type;
@@ -63,17 +64,30 @@ struct cl_option_state {
 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 bool no_unit_at_a_time_default;
-
-#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.  */
-#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.  */
+extern const unsigned int cl_lang_count;
+
+#define CL_PARAMS               (1 << 17) /* Fake entry.  Used to display --param info with --help.  */
+#define CL_WARNING             (1 << 18) /* Enables an (optional) warning message.  */
+#define CL_OPTIMIZATION                (1 << 19) /* Enables an (optional) optimization.  */
+#define CL_TARGET              (1 << 20) /* Target-specific option.  */
+#define CL_COMMON              (1 << 21) /* 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_SAVE                        (1 << 22) /* Target-specific option for attribute.  */
+#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.  */
 #define CL_UNDOCUMENTED                (1 << 30) /* Do not output with --help.  */
 
 /* Input file names.  */
@@ -84,8 +98,13 @@ extern const char **in_fnames;
 
 extern unsigned num_in_fnames;
 
 
 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 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