summaryrefslogtreecommitdiff
path: root/gcc/opts.c
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-15 08:30:02 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-15 08:30:02 +0000
commite690b385a0f2ff4af2cd6cd56fd8ef94f697bf63 (patch)
treefb5a3a4fc913d05084620e60c670ecc9dde2dd16 /gcc/opts.c
parent5bd751ff1c6248385ca2a90cf25232c581bdc9ce (diff)
downloadgcc-e690b385a0f2ff4af2cd6cd56fd8ef94f697bf63.tar.gz
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches. * flags.h (g_switch_set): Boolify. * opts.c (g_switch_value, g_switch_set, exit_after_options, version_flag): Move from toplev.c. (common_handle_option): Handle more switches from toplev.c. * toplev.c (display_help, display_target_options, decode_d_option, print_version): Make non-static, remove prototypes. (aux_base_name, asm_file_name, aux_info_file_name): Constify. (version_flag, g_switch_value, g_switch_set, exit_after_options): Remove. (independent_decode_option): Move some handlers to opts.c. * toplev.h (aux_info_file_name, aux_base_name, asm_file_name, exit_after_options, version_flag, display_help, display_target_options, print_version, decode_d_option): New. java: * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67971 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/opts.c')
-rw-r--r--gcc/opts.c83
1 files changed, 83 insertions, 0 deletions
diff --git a/gcc/opts.c b/gcc/opts.c
index 99b3298688b..204cc0d0db3 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -30,6 +30,16 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "flags.h"
#include "toplev.h"
+/* Value of the -G xx switch, and whether it was passed or not. */
+unsigned HOST_WIDE_INT g_switch_value;
+bool g_switch_set;
+
+/* True if we should exit after parsing options. */
+bool exit_after_options;
+
+/* If -version. */
+bool version_flag;
+
static size_t find_opt (const char *, int);
static int common_handle_option (size_t scode, const char *arg, int value);
@@ -236,9 +246,82 @@ common_handle_option (size_t scode, const char *arg,
default:
abort ();
+ case OPT__help:
+ display_help ();
+ exit_after_options = true;
+ break;
+
+ case OPT__target_help:
+ display_target_options ();
+ exit_after_options = true;
+ break;
+
+ case OPT__version:
+ print_version (stderr, "");
+ exit_after_options = true;
+ break;
+
+ case OPT_G:
+ g_switch_value = read_integral_parameter (arg, 0, -1);
+ if (g_switch_value == (unsigned HOST_WIDE_INT) -1)
+ return 0;
+ g_switch_set = true;
+ break;
+
+ case OPT_aux_info:
+ case OPT_aux_info_:
+ aux_info_file_name = arg;
+ flag_gen_aux_info = 1;
+ break;
+
+ case OPT_auxbase:
+ aux_base_name = arg;
+ break;
+
+ case OPT_auxbase_strip:
+ {
+ char *tmp = xstrdup (arg);
+ strip_off_ending (tmp, strlen (tmp));
+ if (tmp[0])
+ aux_base_name = tmp;
+ }
+ break;
+
+ case OPT_d:
+ decode_d_option (arg);
+ break;
+
+ case OPT_dumpbase:
+ dump_base_name = arg;
+ break;
+
+ case OPT_o:
+ asm_file_name = arg;
+ break;
+
+ case OPT_p:
+ profile_flag = 1;
+ break;
+
+ case OPT_pedantic:
+ pedantic = 1;
+ break;
+
+ case OPT_pedantic_errors:
+ flag_pedantic_errors = pedantic = 1;
+ break;
+
case OPT_quiet:
quiet_flag = 1;
break;
+
+ case OPT_version:
+ version_flag = 1;
+ break;
+
+ case OPT_w:
+ inhibit_warnings = 1;
+ break;
}
return 1;