mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-10 03:44:28 +08:00
Makefile.in: Update.
* Makefile.in: Update. * opts.c: Include tm_p.h. (handle_options): Make static. (decode_options): Copied from toplev.c. * opts.h (decode_options): New. * toplev.c (parse_options_and_default_flags): Move most to opts.c, some to... (general_init): ...here. (toplev_main): Use decode_options instead. * toplev.h (save_argc, save_argv): New. From-SVN: r68629
This commit is contained in:
parent
f7400894d9
commit
9756310a6e
@ -1,3 +1,16 @@
|
|||||||
|
2003-06-28 Neil Booth <neil@daikokuya.co.uk>
|
||||||
|
|
||||||
|
* Makefile.in: Update.
|
||||||
|
* opts.c: Include tm_p.h.
|
||||||
|
(handle_options): Make static.
|
||||||
|
(decode_options): Copied from toplev.c.
|
||||||
|
* opts.h (decode_options): New.
|
||||||
|
* toplev.c (parse_options_and_default_flags): Move most to opts.c,
|
||||||
|
some to...
|
||||||
|
(general_init): ...here.
|
||||||
|
(toplev_main): Use decode_options instead.
|
||||||
|
* toplev.h (save_argc, save_argv): New.
|
||||||
|
|
||||||
2003-06-28 Kazu Hirata <kazu@cs.umass.edu>
|
2003-06-28 Kazu Hirata <kazu@cs.umass.edu>
|
||||||
|
|
||||||
* explow.c (find_next_ref): Remove.
|
* explow.c (find_next_ref): Remove.
|
||||||
|
@ -1483,7 +1483,7 @@ diagnostic.o : diagnostic.c diagnostic.h real.h diagnostic.def \
|
|||||||
input.h toplev.h intl.h langhooks.h $(LANGHOOKS_DEF_H)
|
input.h toplev.h intl.h langhooks.h $(LANGHOOKS_DEF_H)
|
||||||
opts.o : opts.c opts.h options.h toplev.h $(CONFIG_H) $(SYSTEM_H) \
|
opts.o : opts.c opts.h options.h toplev.h $(CONFIG_H) $(SYSTEM_H) \
|
||||||
coretypes.h $(TREE_H) $(TM_H) $(LANGHOOKS_H) $(GGC_H) $(RTL_H) \
|
coretypes.h $(TREE_H) $(TM_H) $(LANGHOOKS_H) $(GGC_H) $(RTL_H) \
|
||||||
output.h diagnostic.h
|
output.h diagnostic.h $(TM_P_H)
|
||||||
toplev.o : toplev.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
|
toplev.o : toplev.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
|
||||||
function.h flags.h xcoffout.h input.h $(INSN_ATTR_H) output.h diagnostic.h \
|
function.h flags.h xcoffout.h input.h $(INSN_ATTR_H) output.h diagnostic.h \
|
||||||
debug.h insn-config.h intl.h $(RECOG_H) Makefile toplev.h \
|
debug.h insn-config.h intl.h $(RECOG_H) Makefile toplev.h \
|
||||||
|
181
gcc/opts.c
181
gcc/opts.c
@ -34,6 +34,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
|||||||
#include "toplev.h"
|
#include "toplev.h"
|
||||||
#include "params.h"
|
#include "params.h"
|
||||||
#include "diagnostic.h"
|
#include "diagnostic.h"
|
||||||
|
#include "tm_p.h" /* For OPTIMIZATION_OPTIONS. */
|
||||||
|
|
||||||
/* Value of the -G xx switch, and whether it was passed or not. */
|
/* Value of the -G xx switch, and whether it was passed or not. */
|
||||||
unsigned HOST_WIDE_INT g_switch_value;
|
unsigned HOST_WIDE_INT g_switch_value;
|
||||||
@ -133,6 +134,7 @@ static unsigned int handle_option (char **argv, unsigned int lang_mask);
|
|||||||
static char *write_langs (unsigned int lang_mask);
|
static char *write_langs (unsigned int lang_mask);
|
||||||
static void complain_wrong_lang (const char *, const struct cl_option *,
|
static void complain_wrong_lang (const char *, const struct cl_option *,
|
||||||
unsigned int lang_mask);
|
unsigned int lang_mask);
|
||||||
|
static void handle_options (unsigned int, char **, unsigned int lang_mask);
|
||||||
|
|
||||||
/* Perform a binary search to find which option the command-line INPUT
|
/* Perform a binary search to find which option the command-line INPUT
|
||||||
matches. Returns its index in the option array, and N_OPTS
|
matches. Returns its index in the option array, and N_OPTS
|
||||||
@ -404,7 +406,7 @@ handle_option (char **argv, unsigned int lang_mask)
|
|||||||
/* Decode and handle the vector of command line options. LANG_MASK
|
/* Decode and handle the vector of command line options. LANG_MASK
|
||||||
contains has a single bit set representing the current
|
contains has a single bit set representing the current
|
||||||
language. */
|
language. */
|
||||||
void
|
static void
|
||||||
handle_options (unsigned int argc, char **argv, unsigned int lang_mask)
|
handle_options (unsigned int argc, char **argv, unsigned int lang_mask)
|
||||||
{
|
{
|
||||||
unsigned int n, i;
|
unsigned int n, i;
|
||||||
@ -421,6 +423,183 @@ handle_options (unsigned int argc, char **argv, unsigned int lang_mask)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Parse command line options and set default flag values. Do minimal
|
||||||
|
options processing. */
|
||||||
|
void
|
||||||
|
decode_options (int argc, char **argv)
|
||||||
|
{
|
||||||
|
int i, lang_mask;
|
||||||
|
|
||||||
|
/* Save in case md file wants to emit args as a comment. */
|
||||||
|
save_argc = argc;
|
||||||
|
save_argv = argv;
|
||||||
|
|
||||||
|
/* Perform language-specific options initialization. */
|
||||||
|
lang_mask = (*lang_hooks.init_options) ();
|
||||||
|
|
||||||
|
/* Scan to see what optimization level has been specified. That will
|
||||||
|
determine the default value of many flags. */
|
||||||
|
for (i = 1; i < argc; i++)
|
||||||
|
{
|
||||||
|
if (!strcmp (argv[i], "-O"))
|
||||||
|
{
|
||||||
|
optimize = 1;
|
||||||
|
optimize_size = 0;
|
||||||
|
}
|
||||||
|
else if (argv[i][0] == '-' && argv[i][1] == 'O')
|
||||||
|
{
|
||||||
|
/* Handle -Os, -O2, -O3, -O69, ... */
|
||||||
|
char *p = &argv[i][2];
|
||||||
|
|
||||||
|
if ((p[0] == 's') && (p[1] == 0))
|
||||||
|
{
|
||||||
|
optimize_size = 1;
|
||||||
|
|
||||||
|
/* Optimizing for size forces optimize to be 2. */
|
||||||
|
optimize = 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const int optimize_val = read_integral_parameter (p, p - 2, -1);
|
||||||
|
if (optimize_val != -1)
|
||||||
|
{
|
||||||
|
optimize = optimize_val;
|
||||||
|
optimize_size = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!optimize)
|
||||||
|
{
|
||||||
|
flag_merge_constants = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (optimize >= 1)
|
||||||
|
{
|
||||||
|
flag_defer_pop = 1;
|
||||||
|
flag_thread_jumps = 1;
|
||||||
|
#ifdef DELAY_SLOTS
|
||||||
|
flag_delayed_branch = 1;
|
||||||
|
#endif
|
||||||
|
#ifdef CAN_DEBUG_WITHOUT_FP
|
||||||
|
flag_omit_frame_pointer = 1;
|
||||||
|
#endif
|
||||||
|
flag_guess_branch_prob = 1;
|
||||||
|
flag_cprop_registers = 1;
|
||||||
|
flag_loop_optimize = 1;
|
||||||
|
flag_crossjumping = 1;
|
||||||
|
flag_if_conversion = 1;
|
||||||
|
flag_if_conversion2 = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (optimize >= 2)
|
||||||
|
{
|
||||||
|
flag_optimize_sibling_calls = 1;
|
||||||
|
flag_cse_follow_jumps = 1;
|
||||||
|
flag_cse_skip_blocks = 1;
|
||||||
|
flag_gcse = 1;
|
||||||
|
flag_expensive_optimizations = 1;
|
||||||
|
flag_strength_reduce = 1;
|
||||||
|
flag_rerun_cse_after_loop = 1;
|
||||||
|
flag_rerun_loop_opt = 1;
|
||||||
|
flag_caller_saves = 1;
|
||||||
|
flag_force_mem = 1;
|
||||||
|
flag_peephole2 = 1;
|
||||||
|
#ifdef INSN_SCHEDULING
|
||||||
|
flag_schedule_insns = 1;
|
||||||
|
flag_schedule_insns_after_reload = 1;
|
||||||
|
#endif
|
||||||
|
flag_regmove = 1;
|
||||||
|
flag_strict_aliasing = 1;
|
||||||
|
flag_delete_null_pointer_checks = 1;
|
||||||
|
flag_reorder_blocks = 1;
|
||||||
|
flag_reorder_functions = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (optimize >= 3)
|
||||||
|
{
|
||||||
|
flag_inline_functions = 1;
|
||||||
|
flag_rename_registers = 1;
|
||||||
|
flag_unswitch_loops = 1;
|
||||||
|
flag_unit_at_a_time = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (optimize < 2 || optimize_size)
|
||||||
|
{
|
||||||
|
align_loops = 1;
|
||||||
|
align_jumps = 1;
|
||||||
|
align_labels = 1;
|
||||||
|
align_functions = 1;
|
||||||
|
|
||||||
|
/* Don't reorder blocks when optimizing for size because extra
|
||||||
|
jump insns may be created; also barrier may create extra padding.
|
||||||
|
|
||||||
|
More correctly we should have a block reordering mode that tried
|
||||||
|
to minimize the combined size of all the jumps. This would more
|
||||||
|
or less automatically remove extra jumps, but would also try to
|
||||||
|
use more short jumps instead of long jumps. */
|
||||||
|
flag_reorder_blocks = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Initialize whether `char' is signed. */
|
||||||
|
flag_signed_char = DEFAULT_SIGNED_CHAR;
|
||||||
|
#ifdef DEFAULT_SHORT_ENUMS
|
||||||
|
/* Initialize how much space enums occupy, by default. */
|
||||||
|
flag_short_enums = DEFAULT_SHORT_ENUMS;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Initialize target_flags before OPTIMIZATION_OPTIONS so the latter can
|
||||||
|
modify it. */
|
||||||
|
target_flags = 0;
|
||||||
|
set_target_switch ("");
|
||||||
|
|
||||||
|
/* Unwind tables are always present in an ABI-conformant IA-64
|
||||||
|
object file, so the default should be ON. */
|
||||||
|
#ifdef IA64_UNWIND_INFO
|
||||||
|
flag_unwind_tables = IA64_UNWIND_INFO;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef OPTIMIZATION_OPTIONS
|
||||||
|
/* Allow default optimizations to be specified on a per-machine basis. */
|
||||||
|
OPTIMIZATION_OPTIONS (optimize, optimize_size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
handle_options (argc, argv, lang_mask);
|
||||||
|
|
||||||
|
if (flag_pie)
|
||||||
|
flag_pic = flag_pie;
|
||||||
|
if (flag_pic && !flag_pie)
|
||||||
|
flag_shlib = 1;
|
||||||
|
|
||||||
|
if (flag_no_inline == 2)
|
||||||
|
flag_no_inline = 0;
|
||||||
|
else
|
||||||
|
flag_really_no_inline = flag_no_inline;
|
||||||
|
|
||||||
|
/* Set flag_no_inline before the post_options () hook. The C front
|
||||||
|
ends use it to determine tree inlining defaults. FIXME: such
|
||||||
|
code should be lang-independent when all front ends use tree
|
||||||
|
inlining, in which case it, and this condition, should be moved
|
||||||
|
to the top of process_options() instead. */
|
||||||
|
if (optimize == 0)
|
||||||
|
{
|
||||||
|
/* Inlining does not work if not optimizing,
|
||||||
|
so force it not to be done. */
|
||||||
|
flag_no_inline = 1;
|
||||||
|
warn_inline = 0;
|
||||||
|
|
||||||
|
/* The c_decode_option function and decode_option hook set
|
||||||
|
this to `2' if -Wall is used, so we can avoid giving out
|
||||||
|
lots of errors for people who don't realize what -Wall does. */
|
||||||
|
if (warn_uninitialized == 1)
|
||||||
|
warning ("-Wuninitialized is not supported without -O");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flag_really_no_inline == 2)
|
||||||
|
flag_really_no_inline = flag_no_inline;
|
||||||
|
}
|
||||||
|
|
||||||
/* Handle target- and language-independent options. Return zero to
|
/* Handle target- and language-independent options. Return zero to
|
||||||
generate an "unknown option" message. */
|
generate an "unknown option" message. */
|
||||||
static int
|
static int
|
||||||
|
@ -21,8 +21,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
|||||||
#ifndef GCC_OPTS_H
|
#ifndef GCC_OPTS_H
|
||||||
#define GCC_OPTS_H
|
#define GCC_OPTS_H
|
||||||
|
|
||||||
extern void handle_options (unsigned int argc, char **argv,
|
extern void decode_options (int argc, char **argv);
|
||||||
unsigned int lang_mask);
|
|
||||||
|
|
||||||
struct cl_option
|
struct cl_option
|
||||||
{
|
{
|
||||||
|
185
gcc/toplev.c
185
gcc/toplev.c
@ -105,7 +105,6 @@ extern tree last_assemble_variable_decl;
|
|||||||
extern void reg_alloc (void);
|
extern void reg_alloc (void);
|
||||||
|
|
||||||
static void general_init (char *);
|
static void general_init (char *);
|
||||||
static void parse_options_and_default_flags (int, char **);
|
|
||||||
static void do_compile (void);
|
static void do_compile (void);
|
||||||
static void process_options (void);
|
static void process_options (void);
|
||||||
static void backend_init (void);
|
static void backend_init (void);
|
||||||
@ -4590,23 +4589,6 @@ general_init (char *argv0)
|
|||||||
init_stringpool ();
|
init_stringpool ();
|
||||||
init_ttree ();
|
init_ttree ();
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Parse command line options and set default flag values, called
|
|
||||||
after language-independent option-independent initialization. Do
|
|
||||||
minimal options processing. Outputting diagnostics is OK, but GC
|
|
||||||
and identifier hashtables etc. are not initialized yet.
|
|
||||||
|
|
||||||
Return nonzero to suppress compiler back end initialization. */
|
|
||||||
static void
|
|
||||||
parse_options_and_default_flags (int argc, char **argv)
|
|
||||||
{
|
|
||||||
int i, lang_mask;
|
|
||||||
|
|
||||||
/* Save in case md file wants to emit args as a comment. */
|
|
||||||
save_argc = argc;
|
|
||||||
save_argv = argv;
|
|
||||||
|
|
||||||
/* Initialize register usage now so switches may override. */
|
/* Initialize register usage now so switches may override. */
|
||||||
init_reg_sets ();
|
init_reg_sets ();
|
||||||
|
|
||||||
@ -4615,171 +4597,6 @@ parse_options_and_default_flags (int argc, char **argv)
|
|||||||
|
|
||||||
/* This must be done after add_params but before argument processing. */
|
/* This must be done after add_params but before argument processing. */
|
||||||
init_ggc_heuristics();
|
init_ggc_heuristics();
|
||||||
|
|
||||||
/* Perform language-specific options initialization. */
|
|
||||||
lang_mask = (*lang_hooks.init_options) ();
|
|
||||||
|
|
||||||
/* Scan to see what optimization level has been specified. That will
|
|
||||||
determine the default value of many flags. */
|
|
||||||
for (i = 1; i < argc; i++)
|
|
||||||
{
|
|
||||||
if (!strcmp (argv[i], "-O"))
|
|
||||||
{
|
|
||||||
optimize = 1;
|
|
||||||
optimize_size = 0;
|
|
||||||
}
|
|
||||||
else if (argv[i][0] == '-' && argv[i][1] == 'O')
|
|
||||||
{
|
|
||||||
/* Handle -Os, -O2, -O3, -O69, ... */
|
|
||||||
char *p = &argv[i][2];
|
|
||||||
|
|
||||||
if ((p[0] == 's') && (p[1] == 0))
|
|
||||||
{
|
|
||||||
optimize_size = 1;
|
|
||||||
|
|
||||||
/* Optimizing for size forces optimize to be 2. */
|
|
||||||
optimize = 2;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const int optimize_val = read_integral_parameter (p, p - 2, -1);
|
|
||||||
if (optimize_val != -1)
|
|
||||||
{
|
|
||||||
optimize = optimize_val;
|
|
||||||
optimize_size = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!optimize)
|
|
||||||
{
|
|
||||||
flag_merge_constants = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (optimize >= 1)
|
|
||||||
{
|
|
||||||
flag_defer_pop = 1;
|
|
||||||
flag_thread_jumps = 1;
|
|
||||||
#ifdef DELAY_SLOTS
|
|
||||||
flag_delayed_branch = 1;
|
|
||||||
#endif
|
|
||||||
#ifdef CAN_DEBUG_WITHOUT_FP
|
|
||||||
flag_omit_frame_pointer = 1;
|
|
||||||
#endif
|
|
||||||
flag_guess_branch_prob = 1;
|
|
||||||
flag_cprop_registers = 1;
|
|
||||||
flag_loop_optimize = 1;
|
|
||||||
flag_crossjumping = 1;
|
|
||||||
flag_if_conversion = 1;
|
|
||||||
flag_if_conversion2 = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (optimize >= 2)
|
|
||||||
{
|
|
||||||
flag_optimize_sibling_calls = 1;
|
|
||||||
flag_cse_follow_jumps = 1;
|
|
||||||
flag_cse_skip_blocks = 1;
|
|
||||||
flag_gcse = 1;
|
|
||||||
flag_expensive_optimizations = 1;
|
|
||||||
flag_strength_reduce = 1;
|
|
||||||
flag_rerun_cse_after_loop = 1;
|
|
||||||
flag_rerun_loop_opt = 1;
|
|
||||||
flag_caller_saves = 1;
|
|
||||||
flag_force_mem = 1;
|
|
||||||
flag_peephole2 = 1;
|
|
||||||
#ifdef INSN_SCHEDULING
|
|
||||||
flag_schedule_insns = 1;
|
|
||||||
flag_schedule_insns_after_reload = 1;
|
|
||||||
#endif
|
|
||||||
flag_regmove = 1;
|
|
||||||
flag_strict_aliasing = 1;
|
|
||||||
flag_delete_null_pointer_checks = 1;
|
|
||||||
flag_reorder_blocks = 1;
|
|
||||||
flag_reorder_functions = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (optimize >= 3)
|
|
||||||
{
|
|
||||||
flag_inline_functions = 1;
|
|
||||||
flag_rename_registers = 1;
|
|
||||||
flag_unswitch_loops = 1;
|
|
||||||
flag_unit_at_a_time = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (optimize < 2 || optimize_size)
|
|
||||||
{
|
|
||||||
align_loops = 1;
|
|
||||||
align_jumps = 1;
|
|
||||||
align_labels = 1;
|
|
||||||
align_functions = 1;
|
|
||||||
|
|
||||||
/* Don't reorder blocks when optimizing for size because extra
|
|
||||||
jump insns may be created; also barrier may create extra padding.
|
|
||||||
|
|
||||||
More correctly we should have a block reordering mode that tried
|
|
||||||
to minimize the combined size of all the jumps. This would more
|
|
||||||
or less automatically remove extra jumps, but would also try to
|
|
||||||
use more short jumps instead of long jumps. */
|
|
||||||
flag_reorder_blocks = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Initialize whether `char' is signed. */
|
|
||||||
flag_signed_char = DEFAULT_SIGNED_CHAR;
|
|
||||||
#ifdef DEFAULT_SHORT_ENUMS
|
|
||||||
/* Initialize how much space enums occupy, by default. */
|
|
||||||
flag_short_enums = DEFAULT_SHORT_ENUMS;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Initialize target_flags before OPTIMIZATION_OPTIONS so the latter can
|
|
||||||
modify it. */
|
|
||||||
target_flags = 0;
|
|
||||||
set_target_switch ("");
|
|
||||||
|
|
||||||
/* Unwind tables are always present in an ABI-conformant IA-64
|
|
||||||
object file, so the default should be ON. */
|
|
||||||
#ifdef IA64_UNWIND_INFO
|
|
||||||
flag_unwind_tables = IA64_UNWIND_INFO;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef OPTIMIZATION_OPTIONS
|
|
||||||
/* Allow default optimizations to be specified on a per-machine basis. */
|
|
||||||
OPTIMIZATION_OPTIONS (optimize, optimize_size);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
handle_options (argc, argv, lang_mask);
|
|
||||||
|
|
||||||
if (flag_pie)
|
|
||||||
flag_pic = flag_pie;
|
|
||||||
if (flag_pic && !flag_pie)
|
|
||||||
flag_shlib = 1;
|
|
||||||
|
|
||||||
if (flag_no_inline == 2)
|
|
||||||
flag_no_inline = 0;
|
|
||||||
else
|
|
||||||
flag_really_no_inline = flag_no_inline;
|
|
||||||
|
|
||||||
/* Set flag_no_inline before the post_options () hook. The C front
|
|
||||||
ends use it to determine tree inlining defaults. FIXME: such
|
|
||||||
code should be lang-independent when all front ends use tree
|
|
||||||
inlining, in which case it, and this condition, should be moved
|
|
||||||
to the top of process_options() instead. */
|
|
||||||
if (optimize == 0)
|
|
||||||
{
|
|
||||||
/* Inlining does not work if not optimizing,
|
|
||||||
so force it not to be done. */
|
|
||||||
flag_no_inline = 1;
|
|
||||||
warn_inline = 0;
|
|
||||||
|
|
||||||
/* The c_decode_option function and decode_option hook set
|
|
||||||
this to `2' if -Wall is used, so we can avoid giving out
|
|
||||||
lots of errors for people who don't realize what -Wall does. */
|
|
||||||
if (warn_uninitialized == 1)
|
|
||||||
warning ("-Wuninitialized is not supported without -O");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (flag_really_no_inline == 2)
|
|
||||||
flag_really_no_inline = flag_no_inline;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Process the options that have been parsed. */
|
/* Process the options that have been parsed. */
|
||||||
@ -5169,7 +4986,7 @@ toplev_main (int argc, char **argv)
|
|||||||
|
|
||||||
/* Parse the options and do minimal processing; basically just
|
/* Parse the options and do minimal processing; basically just
|
||||||
enough to default flags appropriately. */
|
enough to default flags appropriately. */
|
||||||
parse_options_and_default_flags (argc, argv);
|
decode_options (argc, argv);
|
||||||
|
|
||||||
/* Exit early if we can (e.g. -help). */
|
/* Exit early if we can (e.g. -help). */
|
||||||
if (!exit_after_options)
|
if (!exit_after_options)
|
||||||
|
@ -102,6 +102,10 @@ extern const char *asm_file_name;
|
|||||||
extern bool exit_after_options;
|
extern bool exit_after_options;
|
||||||
extern bool version_flag;
|
extern bool version_flag;
|
||||||
|
|
||||||
|
/* Copy of arguments to toplev_main. */
|
||||||
|
extern int save_argc;
|
||||||
|
extern char **save_argv;
|
||||||
|
|
||||||
extern int target_flags_explicit;
|
extern int target_flags_explicit;
|
||||||
|
|
||||||
/* See toplev.c. */
|
/* See toplev.c. */
|
||||||
|
Loading…
Reference in New Issue
Block a user