X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Ftoplev.c;h=7cfb29e8ef6d274cf137bfd2131309126e5fd8cf;hb=bf48cae7ca8c714c83bf71af83fad8408163a577;hp=30bae577992f7afd5c86e9f800a9199975a61eff;hpb=5125036ee955e150c78f80b56833a7eb27f84fde;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/toplev.c b/gcc/toplev.c index 30bae577992..7cfb29e8ef6 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -253,8 +253,8 @@ enum dump_file_index DFI_flow2, DFI_peephole2, DFI_rnreg, - DFI_ce3, DFI_bbro, + DFI_ce3, DFI_sched2, DFI_stack, DFI_mach, @@ -304,8 +304,8 @@ static struct dump_file_info dump_file[DFI_MAX] = { "flow2", 'w', 1, 0, 0 }, { "peephole2", 'z', 1, 0, 0 }, { "rnreg", 'n', 1, 0, 0 }, - { "ce3", 'E', 1, 0, 0 }, { "bbro", 'B', 1, 0, 0 }, + { "ce3", 'E', 1, 0, 0 }, { "sched2", 'R', 1, 0, 0 }, { "stack", 'k', 1, 0, 0 }, { "mach", 'M', 1, 0, 0 }, @@ -329,7 +329,7 @@ enum graph_dump_types graph_dump_format; char *asm_file_name; /* Value of the -G xx switch, and whether it was passed or not. */ -int g_switch_value; +unsigned HOST_WIDE_INT g_switch_value; int g_switch_set; /* Type(s) of debugging information we are producing (if any). @@ -740,10 +740,6 @@ int flag_unwind_tables = 0; int flag_asynchronous_unwind_tables = 0; -/* Nonzero means allow for forced unwinding. */ - -int flag_forced_unwind_exceptions; - /* Nonzero means don't place uninitialized global data in common storage by default. */ @@ -1128,8 +1124,6 @@ static const lang_independent_options f_options[] = N_("Generate unwind tables exact at each instruction boundary") }, {"non-call-exceptions", &flag_non_call_exceptions, 1, N_("Support synchronous non-call exceptions") }, - {"forced-unwind-exceptions", &flag_forced_unwind_exceptions, 1, - N_("Support forced unwinding, e.g. for thread cancellation") }, {"profile-arcs", &profile_arc_flag, 1, N_("Insert arc based program profiling code") }, {"test-coverage", &flag_test_coverage, 1, @@ -1770,10 +1764,10 @@ setup_core_dumping () { struct rlimit rlim; if (getrlimit (RLIMIT_CORE, &rlim) != 0) - fatal_io_error ("getting core file size maximum limit"); + fatal_error ("getting core file size maximum limit: %m"); rlim.rlim_cur = rlim.rlim_max; if (setrlimit (RLIMIT_CORE, &rlim) != 0) - fatal_io_error ("setting core file size limit to maximum"); + fatal_error ("setting core file size limit to maximum: %m"); } #endif diagnostic_abort_on_error (global_dc); @@ -1919,7 +1913,7 @@ open_dump_file (index, decl) rtl_dump_file = fopen (dump_name, open_arg); if (rtl_dump_file == NULL) - fatal_io_error ("can't open %s", dump_name); + fatal_error ("can't open %s: %m", dump_name); free (dump_name); @@ -2132,6 +2126,8 @@ check_global_declarations (vec, len) && ! TREE_USED (DECL_NAME (decl)) && ! DECL_EXTERNAL (decl) && ! TREE_PUBLIC (decl) + /* A volatile variable might be used in some non-obvious way. */ + && ! TREE_THIS_VOLATILE (decl) /* Global register variables must be declared to reserve them. */ && ! (TREE_CODE (decl) == VAR_DECL && DECL_REGISTER (decl)) /* Otherwise, ask the language. */ @@ -3091,13 +3087,14 @@ rest_of_compilation (decl) close_dump_file (DFI_cfg, print_rtl_with_bb, insns); /* Do branch profiling and static profile estimation passes. */ - if (optimize > 0 || cfun->arc_profile || flag_branch_probabilities) + if (optimize > 0 + || profile_arc_flag || flag_test_coverage || flag_branch_probabilities) { struct loops loops; timevar_push (TV_BRANCH_PROB); open_dump_file (DFI_bp, decl); - if (cfun->arc_profile || flag_branch_probabilities) + if (profile_arc_flag || flag_test_coverage || flag_branch_probabilities) branch_prob (); /* Discover and record the loop depth at the head of each basic @@ -3655,17 +3652,18 @@ rest_of_compilation (decl) free_bb_for_insn (); /* If a machine dependent reorganization is needed, call it. */ -#ifdef MACHINE_DEPENDENT_REORG - timevar_push (TV_MACH_DEP); - open_dump_file (DFI_mach, decl); + if (targetm.machine_dependent_reorg != 0) + { + timevar_push (TV_MACH_DEP); + open_dump_file (DFI_mach, decl); - MACHINE_DEPENDENT_REORG (insns); + (*targetm.machine_dependent_reorg) (); - close_dump_file (DFI_mach, print_rtl, insns); - timevar_pop (TV_MACH_DEP); + close_dump_file (DFI_mach, print_rtl, insns); + timevar_pop (TV_MACH_DEP); - ggc_collect (); -#endif + ggc_collect (); + } purge_line_number_notes (insns); cleanup_barriers (); @@ -4881,7 +4879,7 @@ init_asm_output (name) else asm_out_file = fopen (asm_file_name, "w+"); if (asm_out_file == 0) - fatal_io_error ("can't open %s for writing", asm_file_name); + fatal_error ("can't open %s for writing: %m", asm_file_name); } #ifdef IO_BUFFER_SIZE @@ -5370,7 +5368,7 @@ process_options () { aux_info_file = fopen (aux_info_file_name, "w"); if (aux_info_file == 0) - fatal_io_error ("can't open %s", aux_info_file_name); + fatal_error ("can't open %s: %m", aux_info_file_name); } if (! targetm.have_named_sections) @@ -5522,9 +5520,9 @@ finalize () if (asm_out_file) { if (ferror (asm_out_file) != 0) - fatal_io_error ("error writing to %s", asm_file_name); + fatal_error ("error writing to %s: %m", asm_file_name); if (fclose (asm_out_file) != 0) - fatal_io_error ("error closing %s", asm_file_name); + fatal_error ("error closing %s: %m", asm_file_name); } /* Do whatever is necessary to finish printing the graphs. */