diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 69d71ce5f97..2030daa05d0 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -4917,7 +4917,7 @@ ix86_expand_int_movcc (operands) { /* Try a few things more with specific constants and a variable. */ - optab op = NULL; + optab op; rtx var, orig_out, out, tmp; if (optimize_size) @@ -4933,6 +4933,8 @@ ix86_expand_int_movcc (operands) operands[3] = constm1_rtx, op = and_optab; else if (INTVAL (operands[2]) == -1) operands[3] = const0_rtx, op = ior_optab; + else + return 0; /* FAIL */ } else if (GET_CODE (operands[3]) == CONST_INT) { @@ -4941,9 +4943,10 @@ ix86_expand_int_movcc (operands) operands[2] = constm1_rtx, op = and_optab; else if (INTVAL (operands[3]) == -1) operands[2] = const0_rtx, op = ior_optab; + else + return 0; /* FAIL */ } - - if (op == NULL) + else return 0; /* FAIL */ orig_out = operands[0]; @@ -5901,17 +5904,21 @@ ix86_flags_dependant (insn, dep_insn, insn_type) set = SET_DEST (XVECEXP (PATTERN (dep_insn), 0, 0)); set2 = SET_DEST (XVECEXP (PATTERN (dep_insn), 0, 0)); } + else + return 0; - if (set && GET_CODE (set) == REG && REGNO (set) == FLAGS_REG) - { - /* This test is true if the dependant insn reads the flags but - not any other potentially set register. */ - if (reg_overlap_mentioned_p (set, PATTERN (insn)) - && (!set2 || !reg_overlap_mentioned_p (set2, PATTERN (insn)))) - return 1; - } + if (GET_CODE (set) != REG || REGNO (set) != FLAGS_REG) + return 0; - return 0; + /* This test is true if the dependant insn reads the flags but + not any other potentially set register. */ + if (!reg_overlap_mentioned_p (set, PATTERN (insn))) + return 0; + + if (set2 && reg_overlap_mentioned_p (set2, PATTERN (insn))) + return 0; + + return 1; } /* A subroutine of ix86_adjust_cost -- return true iff INSN has a memory @@ -6208,19 +6215,170 @@ ix86_pent_find_pair (e_ready, ready, type, first) return bestinsnp; } +/* Subroutines of ix86_sched_reorder. */ + +void +ix86_sched_reorder_pentium (ready, e_ready) + rtx *ready; + rtx *e_ready; +{ + enum attr_pent_pair pair1, pair2; + rtx *insnp; + + /* This wouldn't be necessary if Haifa knew that static insn ordering + is important to which pipe an insn is issued to. So we have to make + some minor rearrangements. */ + + pair1 = ix86_safe_pent_pair (*e_ready); + + /* If the first insn is non-pairable, let it be. */ + if (pair1 == PENT_PAIR_NP) + return; + + pair2 = PENT_PAIR_NP; + insnp = 0; + + /* If the first insn is UV or PV pairable, search for a PU + insn to go with. */ + if (pair1 == PENT_PAIR_UV || pair1 == PENT_PAIR_PV) + { + insnp = ix86_pent_find_pair (e_ready-1, ready, + PENT_PAIR_PU, *e_ready); + if (insnp) + pair2 = PENT_PAIR_PU; + } + + /* If the first insn is PU or UV pairable, search for a PV + insn to go with. */ + if (pair2 == PENT_PAIR_NP + && (pair1 == PENT_PAIR_PU || pair1 == PENT_PAIR_UV)) + { + insnp = ix86_pent_find_pair (e_ready-1, ready, + PENT_PAIR_PV, *e_ready); + if (insnp) + pair2 = PENT_PAIR_PV; + } + + /* If the first insn is pairable, search for a UV + insn to go with. */ + if (pair2 == PENT_PAIR_NP) + { + insnp = ix86_pent_find_pair (e_ready-1, ready, + PENT_PAIR_UV, *e_ready); + if (insnp) + pair2 = PENT_PAIR_UV; + } + + if (pair2 == PENT_PAIR_NP) + return; + + /* Found something! Decide if we need to swap the order. */ + if (pair1 == PENT_PAIR_PV || pair2 == PENT_PAIR_PU + || (pair1 == PENT_PAIR_UV && pair2 == PENT_PAIR_UV + && ix86_safe_memory (*e_ready) == MEMORY_BOTH + && ix86_safe_memory (*insnp) == MEMORY_LOAD)) + ix86_reorder_insn (insnp, e_ready); + else + ix86_reorder_insn (insnp, e_ready - 1); +} + +void +ix86_sched_reorder_ppro (ready, e_ready) + rtx *ready; + rtx *e_ready; +{ + rtx decode[3]; + enum attr_ppro_uops cur_uops; + int issued_this_cycle; + rtx *insnp; + int i; + + /* At this point .ppro.decode contains the state of the three + decoders from last "cycle". That is, those insns that were + actually independent. But here we're scheduling for the + decoder, and we may find things that are decodable in the + same cycle. */ + + memcpy (decode, ix86_sched_data.ppro.decode, sizeof(decode)); + issued_this_cycle = 0; + + insnp = e_ready; + cur_uops = ix86_safe_ppro_uops (*insnp); + + /* If the decoders are empty, and we've a complex insn at the + head of the priority queue, let it issue without complaint. */ + if (decode[0] == NULL) + { + if (cur_uops == PPRO_UOPS_MANY) + { + decode[0] = *insnp; + goto ppro_done; + } + + /* Otherwise, search for a 2-4 uop unsn to issue. */ + while (cur_uops != PPRO_UOPS_FEW) + { + if (insnp == ready) + break; + cur_uops = ix86_safe_ppro_uops (*--insnp); + } + + /* If so, move it to the head of the line. */ + if (cur_uops == PPRO_UOPS_FEW) + ix86_reorder_insn (insnp, e_ready); + + /* Issue the head of the queue. */ + issued_this_cycle = 1; + decode[0] = *e_ready--; + } + + /* Look for simple insns to fill in the other two slots. */ + for (i = 1; i < 3; ++i) + if (decode[i] == NULL) + { + if (ready >= e_ready) + goto ppro_done; + + insnp = e_ready; + cur_uops = ix86_safe_ppro_uops (*insnp); + while (cur_uops != PPRO_UOPS_ONE) + { + if (insnp == ready) + break; + cur_uops = ix86_safe_ppro_uops (*--insnp); + } + + /* Found one. Move it to the head of the queue and issue it. */ + if (cur_uops == PPRO_UOPS_ONE) + { + ix86_reorder_insn (insnp, e_ready); + decode[i] = *e_ready--; + issued_this_cycle++; + continue; + } + + /* ??? Didn't find one. Ideally, here we would do a lazy split + of 2-uop insns, issue one and queue the other. */ + } + + ppro_done: + if (issued_this_cycle == 0) + issued_this_cycle = 1; + ix86_sched_data.ppro.issued_this_cycle = issued_this_cycle; +} + + /* We are about to being issuing insns for this clock cycle. Override the default sort algorithm to better slot instructions. */ - int ix86_sched_reorder (dump, sched_verbose, ready, n_ready, clock_var) FILE *dump ATTRIBUTE_UNUSED; int sched_verbose ATTRIBUTE_UNUSED; rtx *ready; - int n_ready, clock_var ATTRIBUTE_UNUSED; + int n_ready; + int clock_var ATTRIBUTE_UNUSED; { rtx *e_ready = ready + n_ready - 1; - rtx *insnp; - int i; if (n_ready < 2) goto out; @@ -6228,146 +6386,14 @@ ix86_sched_reorder (dump, sched_verbose, ready, n_ready, clock_var) switch (ix86_cpu) { default: - goto out; + break; case PROCESSOR_PENTIUM: - /* This wouldn't be necessary if Haifa knew that static insn ordering - is important to which pipe an insn is issued to. So we have to make - some minor rearrangements. */ - { - enum attr_pent_pair pair1, pair2; - - pair1 = ix86_safe_pent_pair (*e_ready); - - /* If the first insn is non-pairable, let it be. */ - if (pair1 == PENT_PAIR_NP) - goto out; - pair2 = PENT_PAIR_NP; - - /* If the first insn is UV or PV pairable, search for a PU - insn to go with. */ - if (pair1 == PENT_PAIR_UV || pair1 == PENT_PAIR_PV) - { - insnp = ix86_pent_find_pair (e_ready-1, ready, - PENT_PAIR_PU, *e_ready); - if (insnp) - pair2 = PENT_PAIR_PU; - } - - /* If the first insn is PU or UV pairable, search for a PV - insn to go with. */ - if (pair2 == PENT_PAIR_NP - && (pair1 == PENT_PAIR_PU || pair1 == PENT_PAIR_UV)) - { - insnp = ix86_pent_find_pair (e_ready-1, ready, - PENT_PAIR_PV, *e_ready); - if (insnp) - pair2 = PENT_PAIR_PV; - } - - /* If the first insn is pairable, search for a UV - insn to go with. */ - if (pair2 == PENT_PAIR_NP) - { - insnp = ix86_pent_find_pair (e_ready-1, ready, - PENT_PAIR_UV, *e_ready); - if (insnp) - pair2 = PENT_PAIR_UV; - } - - if (pair2 == PENT_PAIR_NP) - goto out; - - /* Found something! Decide if we need to swap the order. */ - if (pair1 == PENT_PAIR_PV || pair2 == PENT_PAIR_PU - || (pair1 == PENT_PAIR_UV && pair2 == PENT_PAIR_UV - && ix86_safe_memory (*e_ready) == MEMORY_BOTH - && ix86_safe_memory (*insnp) == MEMORY_LOAD)) - ix86_reorder_insn (insnp, e_ready); - else - ix86_reorder_insn (insnp, e_ready - 1); - } + ix86_sched_reorder_pentium (ready, e_ready); break; case PROCESSOR_PENTIUMPRO: - { - rtx decode[3]; - enum attr_ppro_uops cur_uops; - int issued_this_cycle; - - /* At this point .ppro.decode contains the state of the three - decoders from last "cycle". That is, those insns that were - actually independant. But here we're scheduling for the - decoder, and we may find things that are decodable in the - same cycle. */ - - memcpy (decode, ix86_sched_data.ppro.decode, sizeof(decode)); - issued_this_cycle = 0; - - insnp = e_ready; - cur_uops = ix86_safe_ppro_uops (*insnp); - - /* If the decoders are empty, and we've a complex insn at the - head of the priority queue, let it issue without complaint. */ - if (decode[0] == NULL) - { - if (cur_uops == PPRO_UOPS_MANY) - { - decode[0] = *insnp; - goto ppro_done; - } - - /* Otherwise, search for a 2-4 uop unsn to issue. */ - while (cur_uops != PPRO_UOPS_FEW) - { - if (insnp == ready) - break; - cur_uops = ix86_safe_ppro_uops (*--insnp); - } - - /* If so, move it to the head of the line. */ - if (cur_uops == PPRO_UOPS_FEW) - ix86_reorder_insn (insnp, e_ready); - - /* Issue the head of the queue. */ - issued_this_cycle = 1; - decode[0] = *e_ready--; - } - - /* Look for simple insns to fill in the other two slots. */ - for (i = 1; i < 3; ++i) - if (decode[i] == NULL) - { - if (ready >= e_ready) - goto ppro_done; - - insnp = e_ready; - cur_uops = ix86_safe_ppro_uops (*insnp); - while (cur_uops != PPRO_UOPS_ONE) - { - if (insnp == ready) - break; - cur_uops = ix86_safe_ppro_uops (*--insnp); - } - - /* Found one. Move it to the head of the queue and issue it. */ - if (cur_uops == PPRO_UOPS_ONE) - { - ix86_reorder_insn (insnp, e_ready); - decode[i] = *e_ready--; - issued_this_cycle++; - continue; - } - - /* ??? Didn't find one. Ideally, here we would do a lazy split - of 2-uop insns, issue one and queue the other. */ - } - - ppro_done: - if (issued_this_cycle == 0) - issued_this_cycle = 1; - ix86_sched_data.ppro.issued_this_cycle = issued_this_cycle; - } + ix86_sched_reorder_ppro (ready, e_ready); break; } diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index c6af71f8180..95532c94a14 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -1288,11 +1288,11 @@ typedef struct ix86_args { Note that function `__bb_trace_ret' must not change the machine state, especially the flag register. To grant this, you must output code to save and restore registers - either in this macro or in the macros MACHINE_STATE_SAVE_RET - and MACHINE_STATE_RESTORE_RET. The last two macros will be + either in this macro or in the macros MACHINE_STATE_SAVE + and MACHINE_STATE_RESTORE. The last two macros will be used in the function `__bb_trace_ret', so you must make sure that the function prologue does not change any - register prior to saving it with MACHINE_STATE_SAVE_RET. + register prior to saving it with MACHINE_STATE_SAVE. else if profiling_block_flag != 0: @@ -1324,20 +1324,21 @@ emit_call_insn (gen_call (gen_rtx_MEM (Pmode, \ On the i386 the initialization code at the begin of function `__bb_trace_func' contains a `sub' instruction therefore we handle save and restore of the flag register - in the BLOCK_PROFILER macro. */ + in the BLOCK_PROFILER macro. + + Note that ebx, esi, and edi are callee-save, so we don't have to + preserve them explicitly. */ #define MACHINE_STATE_SAVE(ID) \ do { \ register int eax_ __asm__("eax"); \ register int ecx_ __asm__("ecx"); \ register int edx_ __asm__("edx"); \ - register int esi_ __asm__("esi"); \ - __asm__ __volatile__ ( \ - "push{l} %0\n\t" \ - "push{l} %1\n\t" \ - "push{l} %2\n\t" \ - "push{l} %3" \ - : : "r"(eax_), "r"(ecx_), "r"(edx_), "r"(esi_)); \ + __asm__ __volatile__ ("\ +push{l} %0\n\t\ +push{l} %1\n\t\ +push{l} %2" \ + : : "r"(eax_), "r"(ecx_), "r"(edx_)); \ } while (0); #define MACHINE_STATE_RESTORE(ID) \ @@ -1345,13 +1346,11 @@ do { \ register int eax_ __asm__("eax"); \ register int ecx_ __asm__("ecx"); \ register int edx_ __asm__("edx"); \ - register int esi_ __asm__("esi"); \ - __asm__ __volatile__ ( \ - "pop{l} %3\n\t" \ - "pop{l} %2\n\t" \ - "pop{l} %1\n\t" \ - "pop{l} %0" \ - : "=r"(eax_), "=r"(ecx_), "=r"(edx_), "=r"(esi_)); \ + __asm__ __volatile__ ("\ +pop{l} %2\n\t\ +pop{l} %1\n\t\ +pop{l} %0" \ + : "=r"(eax_), "=r"(ecx_), "=r"(edx_)); \ } while (0); /* EXIT_IGNORE_STACK should be nonzero if, when returning from a function, diff --git a/gcc/fixinc/Makefile.in b/gcc/fixinc/Makefile.in index ad242fc7402..af78996e730 100644 --- a/gcc/fixinc/Makefile.in +++ b/gcc/fixinc/Makefile.in @@ -1,5 +1,5 @@ # Makefile for GNU compilers. -# Copyright (C) 1998, 1999 Free Software Foundation, Inc. +# Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. #This file is part of GNU CC. @@ -101,7 +101,8 @@ fixincl.x: fixincl.tpl inclhack.def inclhack.sh: inclhack.def inclhack.tpl hackshell.tpl cd $(srcdir) ; ./genfixes $@ -fixincl.sh: inclhack.def inclhack.tpl +# fixinc.sh, unlike the other two, has _no_ dependency on the .def file. +fixincl.sh: inclhack.tpl cd $(srcdir) ; ./genfixes $@ clean: @@ -137,15 +138,6 @@ Makefile: Makefile.in ../config.status cd .. \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status -# Black magic. -# Note dependency on ASCII. \040 = space, \011 = tab, \012 = newline. - machname.h: ../specs - @tr -s '\040\011' '\012\012' < ../specs | \ - sed -n 's/^.*-D\([a-zA-Z_][a-zA-Z0-9_]*\).*$$/\1/p' | sort -u | \ - grep -v '^_[_A-Z]' > mn.T - @echo "Forbidden identifiers: `tr '\012' ' ' /' mn.T2 - @echo '' >>mn.T2 - @sed 's/^/#define MN_NAME_PAT "/; s/|$$/"/' < mn.T2 > machname.h - @-rm -f mn.T mn.T2 + $(SHELL) $(srcdir)/gen-machname.h < ../specs > machname.T + mv -f machname.T machname.h diff --git a/gcc/fixinc/fixfixes.c b/gcc/fixinc/fixfixes.c index 597ce383dbc..c665b755abd 100644 --- a/gcc/fixinc/fixfixes.c +++ b/gcc/fixinc/fixfixes.c @@ -566,7 +566,11 @@ FIX_PROC_HEAD( machine_name_fix ) char scratch[SCRATCHSZ]; size_t len; - mn_get_regexps (&label_re, &name_re, "machine_name_fix"); + if (mn_get_regexps (&label_re, &name_re, "machine_name_fix")) + /* This platform doesn't need this fix. We can only get here if + someone is running fixfixes by hand, but let's be polite. */ + goto done; + scratch[0] = '_'; scratch[1] = '_'; diff --git a/gcc/fixinc/fixincl.c b/gcc/fixinc/fixincl.c index 23e738a8e77..cfd7d9e20c4 100644 --- a/gcc/fixinc/fixincl.c +++ b/gcc/fixinc/fixincl.c @@ -33,6 +33,8 @@ Boston, MA 02111-1307, USA. */ #include "server.h" +#define NO_BOGOSITY + /* Quality Assurance Marker :-) Any file that contains this string is presumed to have diff --git a/gcc/fixinc/fixincl.x b/gcc/fixinc/fixincl.x index ff0a0f12137..75ae292388f 100644 --- a/gcc/fixinc/fixincl.x +++ b/gcc/fixinc/fixincl.x @@ -5,7 +5,7 @@ * files which are fixed to work correctly with ANSI C and placed in a * directory that GNU C will search. * - * This file contains 115 fixup descriptions. + * This file contains 113 fixup descriptions. * * See README-fixinc for more information. * @@ -1290,43 +1290,11 @@ const char* apzDec_Intern_AsmPatch[] = { "sed", #endif\n", (char*)NULL }; -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of No_Double_Slash fix - */ -#define NO_DOUBLE_SLASH_FIXIDX 28 -tSCC zNo_Double_SlashName[] = - "no_double_slash"; - -/* - * File name selection pattern - */ -#define zNo_Double_SlashList (char*)NULL -/* - * Machine/OS name selection pattern - */ -#define apzNo_Double_SlashMachs (const char**)NULL - -/* - * perform the C function call test - */ -tSCC zNo_Double_SlashFTst0[] = "double_slash"; - -#define NO_DOUBLE_SLASH_TEST_CT 1 -tTestDesc aNo_Double_SlashTests[] = { - { TT_FUNCTION, zNo_Double_SlashFTst0, 0 /* unused */ }, }; - -/* - * Fix Command Arguments for No_Double_Slash - */ -const char* apzNo_Double_SlashPatch[] = {"no_double_slash", - (char*)NULL }; - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * Description of Ecd_Cursor fix */ -#define ECD_CURSOR_FIXIDX 29 +#define ECD_CURSOR_FIXIDX 28 tSCC zEcd_CursorName[] = "ecd_cursor"; @@ -1353,7 +1321,7 @@ const char* apzEcd_CursorPatch[] = { "sed", * * Description of Sco5_Stat_Wrappers fix */ -#define SCO5_STAT_WRAPPERS_FIXIDX 30 +#define SCO5_STAT_WRAPPERS_FIXIDX 29 tSCC zSco5_Stat_WrappersName[] = "sco5_stat_wrappers"; @@ -1386,43 +1354,11 @@ extern \"C\"\\\n\ #endif /* __cplusplus */\\\n", (char*)NULL }; -/* * * * * * * * * * * * * * * * * * * * * * * * * * - * - * Description of End_Else_Label fix - */ -#define END_ELSE_LABEL_FIXIDX 31 -tSCC zEnd_Else_LabelName[] = - "end_else_label"; - -/* - * File name selection pattern - */ -#define zEnd_Else_LabelList (char*)NULL -/* - * Machine/OS name selection pattern - */ -#define apzEnd_Else_LabelMachs (const char**)NULL - -/* - * perform the C function call test - */ -tSCC zEnd_Else_LabelFTst0[] = "else_endif_label"; - -#define END_ELSE_LABEL_TEST_CT 1 -tTestDesc aEnd_Else_LabelTests[] = { - { TT_FUNCTION, zEnd_Else_LabelFTst0, 0 /* unused */ }, }; - -/* - * Fix Command Arguments for End_Else_Label - */ -const char* apzEnd_Else_LabelPatch[] = {"else_endif_label", - (char*)NULL }; - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * Description of Hp_Inline fix */ -#define HP_INLINE_FIXIDX 32 +#define HP_INLINE_FIXIDX 30 tSCC zHp_InlineName[] = "hp_inline"; @@ -1458,7 +1394,7 @@ const char* apzHp_InlinePatch[] = { "sed", * * Description of Hp_Sysfile fix */ -#define HP_SYSFILE_FIXIDX 33 +#define HP_SYSFILE_FIXIDX 31 tSCC zHp_SysfileName[] = "hp_sysfile"; @@ -1486,14 +1422,14 @@ tTestDesc aHp_SysfileTests[] = { * Fix Command Arguments for Hp_Sysfile */ const char* apzHp_SysfilePatch[] = { "sed", - "-e", "s/(\\.\\.\\.)/(struct file * ...)/", + "-e", "s/(\\.\\.\\.)/(struct file *, ...)/", (char*)NULL }; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * Description of Cxx_Unready fix */ -#define CXX_UNREADY_FIXIDX 34 +#define CXX_UNREADY_FIXIDX 32 tSCC zCxx_UnreadyName[] = "cxx_unready"; @@ -1543,7 +1479,7 @@ extern \"C\" {\\\n\ * * Description of Hpux_Maxint fix */ -#define HPUX_MAXINT_FIXIDX 35 +#define HPUX_MAXINT_FIXIDX 33 tSCC zHpux_MaxintName[] = "hpux_maxint"; @@ -1573,7 +1509,7 @@ const char* apzHpux_MaxintPatch[] = { "sed", * * Description of Hpux_Systime fix */ -#define HPUX_SYSTIME_FIXIDX 36 +#define HPUX_SYSTIME_FIXIDX 34 tSCC zHpux_SystimeName[] = "hpux_systime"; @@ -1608,7 +1544,7 @@ const char* apzHpux_SystimePatch[] = { "sed", * * Description of Hpux8_Bogus_Inlines fix */ -#define HPUX8_BOGUS_INLINES_FIXIDX 37 +#define HPUX8_BOGUS_INLINES_FIXIDX 35 tSCC zHpux8_Bogus_InlinesName[] = "hpux8_bogus_inlines"; @@ -1646,7 +1582,7 @@ const char* apzHpux8_Bogus_InlinesPatch[] = { "sed", * * Description of Hpux11_Uint32_C fix */ -#define HPUX11_UINT32_C_FIXIDX 38 +#define HPUX11_UINT32_C_FIXIDX 36 tSCC zHpux11_Uint32_CName[] = "hpux11_uint32_c"; @@ -1681,7 +1617,7 @@ const char* apzHpux11_Uint32_CPatch[] = { "sed", * * Description of Isc_Omits_With_Stdc fix */ -#define ISC_OMITS_WITH_STDC_FIXIDX 39 +#define ISC_OMITS_WITH_STDC_FIXIDX 37 tSCC zIsc_Omits_With_StdcName[] = "isc_omits_with_stdc"; @@ -1716,7 +1652,7 @@ const char* apzIsc_Omits_With_StdcPatch[] = { "sed", * * Description of Io_Use_Quotes fix */ -#define IO_USE_QUOTES_FIXIDX 40 +#define IO_USE_QUOTES_FIXIDX 38 tSCC zIo_Use_QuotesName[] = "io_use_quotes"; @@ -1749,7 +1685,7 @@ const char* apzIo_Use_QuotesPatch[] = {"IO_use", * * Description of Io_Def_Quotes fix */ -#define IO_DEF_QUOTES_FIXIDX 41 +#define IO_DEF_QUOTES_FIXIDX 39 tSCC zIo_Def_QuotesName[] = "io_def_quotes"; @@ -1782,7 +1718,7 @@ const char* apzIo_Def_QuotesPatch[] = {"IO_defn", * * Description of Ctrl_Use_Quotes fix */ -#define CTRL_USE_QUOTES_FIXIDX 42 +#define CTRL_USE_QUOTES_FIXIDX 40 tSCC zCtrl_Use_QuotesName[] = "ctrl_use_quotes"; @@ -1815,7 +1751,7 @@ const char* apzCtrl_Use_QuotesPatch[] = {"CTRL_use", * * Description of Ctrl_Def_Quotes fix */ -#define CTRL_DEF_QUOTES_FIXIDX 43 +#define CTRL_DEF_QUOTES_FIXIDX 41 tSCC zCtrl_Def_QuotesName[] = "ctrl_def_quotes"; @@ -1848,7 +1784,7 @@ const char* apzCtrl_Def_QuotesPatch[] = {"CTRL_defn", * * Description of Ip_Missing_Semi fix */ -#define IP_MISSING_SEMI_FIXIDX 44 +#define IP_MISSING_SEMI_FIXIDX 42 tSCC zIp_Missing_SemiName[] = "ip_missing_semi"; @@ -1883,7 +1819,7 @@ const char* apzIp_Missing_SemiPatch[] = { "sed", * * Description of Irix_Multiline_Cmnt fix */ -#define IRIX_MULTILINE_CMNT_FIXIDX 45 +#define IRIX_MULTILINE_CMNT_FIXIDX 43 tSCC zIrix_Multiline_CmntName[] = "irix_multiline_cmnt"; @@ -1911,7 +1847,7 @@ const char* apzIrix_Multiline_CmntPatch[] = { "sed", * * Description of Irix_Sockaddr fix */ -#define IRIX_SOCKADDR_FIXIDX 46 +#define IRIX_SOCKADDR_FIXIDX 44 tSCC zIrix_SockaddrName[] = "irix_sockaddr"; @@ -1954,7 +1890,7 @@ struct sockaddr;\n", * * Description of Irix_Struct__File fix */ -#define IRIX_STRUCT__FILE_FIXIDX 47 +#define IRIX_STRUCT__FILE_FIXIDX 45 tSCC zIrix_Struct__FileName[] = "irix_struct__file"; @@ -1982,7 +1918,7 @@ struct __file_s;\n", * * Description of Irix_Asm_Apostrophe fix */ -#define IRIX_ASM_APOSTROPHE_FIXIDX 48 +#define IRIX_ASM_APOSTROPHE_FIXIDX 46 tSCC zIrix_Asm_ApostropheName[] = "irix_asm_apostrophe"; @@ -2017,7 +1953,7 @@ const char* apzIrix_Asm_ApostrophePatch[] = { "sed", * * Description of Isc_Fmod fix */ -#define ISC_FMOD_FIXIDX 49 +#define ISC_FMOD_FIXIDX 47 tSCC zIsc_FmodName[] = "isc_fmod"; @@ -2052,7 +1988,7 @@ const char* apzIsc_FmodPatch[] = { "sed", * * Description of Motorola_Nested fix */ -#define MOTOROLA_NESTED_FIXIDX 50 +#define MOTOROLA_NESTED_FIXIDX 48 tSCC zMotorola_NestedName[] = "motorola_nested"; @@ -2082,7 +2018,7 @@ const char* apzMotorola_NestedPatch[] = { "sed", * * Description of Isc_Sys_Limits fix */ -#define ISC_SYS_LIMITS_FIXIDX 51 +#define ISC_SYS_LIMITS_FIXIDX 49 tSCC zIsc_Sys_LimitsName[] = "isc_sys_limits"; @@ -2118,7 +2054,7 @@ const char* apzIsc_Sys_LimitsPatch[] = { "sed", * * Description of Kandr_Concat fix */ -#define KANDR_CONCAT_FIXIDX 52 +#define KANDR_CONCAT_FIXIDX 50 tSCC zKandr_ConcatName[] = "kandr_concat"; @@ -2153,7 +2089,7 @@ const char* apzKandr_ConcatPatch[] = { "sed", * * Description of Limits_Ifndefs fix */ -#define LIMITS_IFNDEFS_FIXIDX 53 +#define LIMITS_IFNDEFS_FIXIDX 51 tSCC zLimits_IfndefsName[] = "limits_ifndefs"; @@ -2212,7 +2148,7 @@ const char* apzLimits_IfndefsPatch[] = { "sed", * * Description of Lynx_Void_Int fix */ -#define LYNX_VOID_INT_FIXIDX 54 +#define LYNX_VOID_INT_FIXIDX 52 tSCC zLynx_Void_IntName[] = "lynx_void_int"; @@ -2247,7 +2183,7 @@ const char* apzLynx_Void_IntPatch[] = { "sed", * * Description of Lynxos_Fcntl_Proto fix */ -#define LYNXOS_FCNTL_PROTO_FIXIDX 55 +#define LYNXOS_FCNTL_PROTO_FIXIDX 53 tSCC zLynxos_Fcntl_ProtoName[] = "lynxos_fcntl_proto"; @@ -2282,7 +2218,7 @@ const char* apzLynxos_Fcntl_ProtoPatch[] = { "sed", * * Description of M88k_Bad_Hypot_Opt fix */ -#define M88K_BAD_HYPOT_OPT_FIXIDX 56 +#define M88K_BAD_HYPOT_OPT_FIXIDX 54 tSCC zM88k_Bad_Hypot_OptName[] = "m88k_bad_hypot_opt"; @@ -2324,7 +2260,7 @@ static __inline__ double fake_hypot (x, y)\\\n\ * * Description of M88k_Bad_S_If fix */ -#define M88K_BAD_S_IF_FIXIDX 57 +#define M88K_BAD_S_IF_FIXIDX 55 tSCC zM88k_Bad_S_IfName[] = "m88k_bad_s_if"; @@ -2362,7 +2298,7 @@ const char* apzM88k_Bad_S_IfPatch[] = { "sed", * * Description of M88k_Multi_Incl fix */ -#define M88K_MULTI_INCL_FIXIDX 58 +#define M88K_MULTI_INCL_FIXIDX 56 tSCC zM88k_Multi_InclName[] = "m88k_multi_incl"; @@ -2404,7 +2340,7 @@ const char* apzM88k_Multi_InclPatch[] = { "sh", "-c", * * Description of Machine_Ansi_H_Va_List fix */ -#define MACHINE_ANSI_H_VA_LIST_FIXIDX 59 +#define MACHINE_ANSI_H_VA_LIST_FIXIDX 57 tSCC zMachine_Ansi_H_Va_ListName[] = "machine_ansi_h_va_list"; @@ -2446,7 +2382,7 @@ const char* apzMachine_Ansi_H_Va_ListPatch[] = { "sed", * * Description of Machine_Name fix */ -#define MACHINE_NAME_FIXIDX 60 +#define MACHINE_NAME_FIXIDX 58 tSCC zMachine_NameName[] = "machine_name"; @@ -2478,7 +2414,7 @@ const char* apzMachine_NamePatch[] = {"machine_name", * * Description of Math_Exception fix */ -#define MATH_EXCEPTION_FIXIDX 61 +#define MATH_EXCEPTION_FIXIDX 59 tSCC zMath_ExceptionName[] = "math_exception"; @@ -2513,11 +2449,11 @@ tTestDesc aMath_ExceptionTests[] = { * Fix Command Arguments for Math_Exception */ const char* apzMath_ExceptionPatch[] = { "sed", - "-e", "/struct exception/i\\\n\ + "-e", "1i\\\n\ #ifdef __cplusplus\\\n\ #define exception __math_exception\\\n\ #endif\n", - "-e", "/struct exception/a\\\n\ + "-e", "$a\\\n\ #ifdef __cplusplus\\\n\ #undef exception\\\n\ #endif\n", @@ -2527,7 +2463,7 @@ const char* apzMath_ExceptionPatch[] = { "sed", * * Description of Math_Huge_Val_From_Dbl_Max fix */ -#define MATH_HUGE_VAL_FROM_DBL_MAX_FIXIDX 62 +#define MATH_HUGE_VAL_FROM_DBL_MAX_FIXIDX 60 tSCC zMath_Huge_Val_From_Dbl_MaxName[] = "math_huge_val_from_dbl_max"; @@ -2574,7 +2510,7 @@ const char* apzMath_Huge_Val_From_Dbl_MaxPatch[] = { "sh", "-c", * * Description of Math_Huge_Val_Ifndef fix */ -#define MATH_HUGE_VAL_IFNDEF_FIXIDX 63 +#define MATH_HUGE_VAL_IFNDEF_FIXIDX 61 tSCC zMath_Huge_Val_IfndefName[] = "math_huge_val_ifndef"; @@ -2612,7 +2548,7 @@ const char* apzMath_Huge_Val_IfndefPatch[] = { "sed", * * Description of Nested_Comment fix */ -#define NESTED_COMMENT_FIXIDX 64 +#define NESTED_COMMENT_FIXIDX 62 tSCC zNested_CommentName[] = "nested_comment"; @@ -2639,7 +2575,7 @@ const char* apzNested_CommentPatch[] = { "sed", * * Description of News_Os_Recursion fix */ -#define NEWS_OS_RECURSION_FIXIDX 65 +#define NEWS_OS_RECURSION_FIXIDX 63 tSCC zNews_Os_RecursionName[] = "news_os_recursion"; @@ -2677,7 +2613,7 @@ const char* apzNews_Os_RecursionPatch[] = { "sed", * * Description of Next_Math_Prefix fix */ -#define NEXT_MATH_PREFIX_FIXIDX 66 +#define NEXT_MATH_PREFIX_FIXIDX 64 tSCC zNext_Math_PrefixName[] = "next_math_prefix"; @@ -2716,7 +2652,7 @@ const char* apzNext_Math_PrefixPatch[] = { "sed", * * Description of Next_Template fix */ -#define NEXT_TEMPLATE_FIXIDX 67 +#define NEXT_TEMPLATE_FIXIDX 65 tSCC zNext_TemplateName[] = "next_template"; @@ -2752,7 +2688,7 @@ const char* apzNext_TemplatePatch[] = { "sed", * * Description of Next_Volitile fix */ -#define NEXT_VOLITILE_FIXIDX 68 +#define NEXT_VOLITILE_FIXIDX 66 tSCC zNext_VolitileName[] = "next_volitile"; @@ -2788,7 +2724,7 @@ const char* apzNext_VolitilePatch[] = { "sed", * * Description of Next_Wait_Union fix */ -#define NEXT_WAIT_UNION_FIXIDX 69 +#define NEXT_WAIT_UNION_FIXIDX 67 tSCC zNext_Wait_UnionName[] = "next_wait_union"; @@ -2823,7 +2759,7 @@ const char* apzNext_Wait_UnionPatch[] = { "sed", * * Description of Nodeent_Syntax fix */ -#define NODEENT_SYNTAX_FIXIDX 70 +#define NODEENT_SYNTAX_FIXIDX 68 tSCC zNodeent_SyntaxName[] = "nodeent_syntax"; @@ -2850,7 +2786,7 @@ const char* apzNodeent_SyntaxPatch[] = { "sed", * * Description of Osf_Namespace_A fix */ -#define OSF_NAMESPACE_A_FIXIDX 71 +#define OSF_NAMESPACE_A_FIXIDX 69 tSCC zOsf_Namespace_AName[] = "osf_namespace_a"; @@ -2896,7 +2832,7 @@ const char* apzOsf_Namespace_APatch[] = { "sed", * * Description of Osf_Namespace_B fix */ -#define OSF_NAMESPACE_B_FIXIDX 72 +#define OSF_NAMESPACE_B_FIXIDX 70 tSCC zOsf_Namespace_BName[] = "osf_namespace_b"; @@ -2943,7 +2879,7 @@ typedef __regmatch_t\tregmatch_t;\n", * * Description of Pthread_Page_Size fix */ -#define PTHREAD_PAGE_SIZE_FIXIDX 73 +#define PTHREAD_PAGE_SIZE_FIXIDX 71 tSCC zPthread_Page_SizeName[] = "pthread_page_size"; @@ -2978,7 +2914,7 @@ const char* apzPthread_Page_SizePatch[] = { "sed", * * Description of Read_Ret_Type fix */ -#define READ_RET_TYPE_FIXIDX 74 +#define READ_RET_TYPE_FIXIDX 72 tSCC zRead_Ret_TypeName[] = "read_ret_type"; @@ -3014,7 +2950,7 @@ const char* apzRead_Ret_TypePatch[] = { "sed", * * Description of Rs6000_Double fix */ -#define RS6000_DOUBLE_FIXIDX 75 +#define RS6000_DOUBLE_FIXIDX 73 tSCC zRs6000_DoubleName[] = "rs6000_double"; @@ -3052,7 +2988,7 @@ const char* apzRs6000_DoublePatch[] = { "sed", * * Description of Rs6000_Fchmod fix */ -#define RS6000_FCHMOD_FIXIDX 76 +#define RS6000_FCHMOD_FIXIDX 74 tSCC zRs6000_FchmodName[] = "rs6000_fchmod"; @@ -3087,7 +3023,7 @@ const char* apzRs6000_FchmodPatch[] = { "sed", * * Description of Rs6000_Param fix */ -#define RS6000_PARAM_FIXIDX 77 +#define RS6000_PARAM_FIXIDX 75 tSCC zRs6000_ParamName[] = "rs6000_param"; @@ -3122,7 +3058,7 @@ const char* apzRs6000_ParamPatch[] = { "sed", * * Description of Sony_Include fix */ -#define SONY_INCLUDE_FIXIDX 78 +#define SONY_INCLUDE_FIXIDX 76 tSCC zSony_IncludeName[] = "sony_include"; @@ -3157,7 +3093,7 @@ const char* apzSony_IncludePatch[] = { "sed", * * Description of Statsswtch fix */ -#define STATSSWTCH_FIXIDX 79 +#define STATSSWTCH_FIXIDX 77 tSCC zStatsswtchName[] = "statsswtch"; @@ -3192,7 +3128,7 @@ const char* apzStatsswtchPatch[] = { "sed", * * Description of Stdio_Stdarg_H fix */ -#define STDIO_STDARG_H_FIXIDX 80 +#define STDIO_STDARG_H_FIXIDX 78 tSCC zStdio_Stdarg_HName[] = "stdio_stdarg_h"; @@ -3229,7 +3165,7 @@ const char* apzStdio_Stdarg_HPatch[] = { "sed", * * Description of Stdio_Va_List fix */ -#define STDIO_VA_LIST_FIXIDX 81 +#define STDIO_VA_LIST_FIXIDX 79 tSCC zStdio_Va_ListName[] = "stdio_va_list"; @@ -3273,7 +3209,7 @@ s@_Va_LIST@_VA_LIST@", * * Description of Sun_Bogus_Ifdef fix */ -#define SUN_BOGUS_IFDEF_FIXIDX 82 +#define SUN_BOGUS_IFDEF_FIXIDX 80 tSCC zSun_Bogus_IfdefName[] = "sun_bogus_ifdef"; @@ -3308,7 +3244,7 @@ const char* apzSun_Bogus_IfdefPatch[] = { "sed", * * Description of Sun_Bogus_Ifdef_Sun4c fix */ -#define SUN_BOGUS_IFDEF_SUN4C_FIXIDX 83 +#define SUN_BOGUS_IFDEF_SUN4C_FIXIDX 81 tSCC zSun_Bogus_Ifdef_Sun4cName[] = "sun_bogus_ifdef_sun4c"; @@ -3343,7 +3279,7 @@ const char* apzSun_Bogus_Ifdef_Sun4cPatch[] = { "sed", * * Description of Sun_Catmacro fix */ -#define SUN_CATMACRO_FIXIDX 84 +#define SUN_CATMACRO_FIXIDX 82 tSCC zSun_CatmacroName[] = "sun_catmacro"; @@ -3383,7 +3319,7 @@ const char* apzSun_CatmacroPatch[] = { "sed", * * Description of Sun_Malloc fix */ -#define SUN_MALLOC_FIXIDX 85 +#define SUN_MALLOC_FIXIDX 83 tSCC zSun_MallocName[] = "sun_malloc"; @@ -3413,7 +3349,7 @@ const char* apzSun_MallocPatch[] = { "sed", * * Description of Sun_Rusers_Semi fix */ -#define SUN_RUSERS_SEMI_FIXIDX 86 +#define SUN_RUSERS_SEMI_FIXIDX 84 tSCC zSun_Rusers_SemiName[] = "sun_rusers_semi"; @@ -3448,7 +3384,7 @@ const char* apzSun_Rusers_SemiPatch[] = { "sed", * * Description of Sun_Signal fix */ -#define SUN_SIGNAL_FIXIDX 87 +#define SUN_SIGNAL_FIXIDX 85 tSCC zSun_SignalName[] = "sun_signal"; @@ -3488,7 +3424,7 @@ void\t(*signal(...))(...);\\\n\ * * Description of Sun_Auth_Proto fix */ -#define SUN_AUTH_PROTO_FIXIDX 88 +#define SUN_AUTH_PROTO_FIXIDX 86 tSCC zSun_Auth_ProtoName[] = "sun_auth_proto"; @@ -3528,7 +3464,7 @@ const char* apzSun_Auth_ProtoPatch[] = { "sed", * * Description of Sunos_Matherr_Decl fix */ -#define SUNOS_MATHERR_DECL_FIXIDX 89 +#define SUNOS_MATHERR_DECL_FIXIDX 87 tSCC zSunos_Matherr_DeclName[] = "sunos_matherr_decl"; @@ -3565,7 +3501,7 @@ struct exception;\n", * * Description of Sunos_Strlen fix */ -#define SUNOS_STRLEN_FIXIDX 90 +#define SUNOS_STRLEN_FIXIDX 88 tSCC zSunos_StrlenName[] = "sunos_strlen"; @@ -3600,7 +3536,7 @@ const char* apzSunos_StrlenPatch[] = { "sed", * * Description of Systypes fix */ -#define SYSTYPES_FIXIDX 91 +#define SYSTYPES_FIXIDX 89 tSCC zSystypesName[] = "systypes"; @@ -3659,7 +3595,7 @@ typedef __SIZE_TYPE__ size_t;\\\n\ * * Description of Systypes_Stdlib_Size_T fix */ -#define SYSTYPES_STDLIB_SIZE_T_FIXIDX 92 +#define SYSTYPES_STDLIB_SIZE_T_FIXIDX 90 tSCC zSystypes_Stdlib_Size_TName[] = "systypes_stdlib_size_t"; @@ -3705,7 +3641,7 @@ const char* apzSystypes_Stdlib_Size_TPatch[] = { "sed", * * Description of Sysv68_String fix */ -#define SYSV68_STRING_FIXIDX 93 +#define SYSV68_STRING_FIXIDX 91 tSCC zSysv68_StringName[] = "sysv68_string"; @@ -3742,7 +3678,7 @@ extern unsigned int\\\n\ * * Description of Sysz_Stdlib_For_Sun fix */ -#define SYSZ_STDLIB_FOR_SUN_FIXIDX 94 +#define SYSZ_STDLIB_FOR_SUN_FIXIDX 92 tSCC zSysz_Stdlib_For_SunName[] = "sysz_stdlib_for_sun"; @@ -3775,7 +3711,7 @@ const char* apzSysz_Stdlib_For_SunPatch[] = { "sed", * * Description of Sysz_Stdtypes_For_Sun fix */ -#define SYSZ_STDTYPES_FOR_SUN_FIXIDX 95 +#define SYSZ_STDTYPES_FOR_SUN_FIXIDX 93 tSCC zSysz_Stdtypes_For_SunName[] = "sysz_stdtypes_for_sun"; @@ -3816,7 +3752,7 @@ const char* apzSysz_Stdtypes_For_SunPatch[] = { "sed", * * Description of Tinfo_Cplusplus fix */ -#define TINFO_CPLUSPLUS_FIXIDX 96 +#define TINFO_CPLUSPLUS_FIXIDX 94 tSCC zTinfo_CplusplusName[] = "tinfo_cplusplus"; @@ -3851,7 +3787,7 @@ const char* apzTinfo_CplusplusPatch[] = { "sed", * * Description of Ultrix_Fix_Fixproto fix */ -#define ULTRIX_FIX_FIXPROTO_FIXIDX 97 +#define ULTRIX_FIX_FIXPROTO_FIXIDX 95 tSCC zUltrix_Fix_FixprotoName[] = "ultrix_fix_fixproto"; @@ -3887,7 +3823,7 @@ struct utsname;\n", * * Description of Ultrix_Atof_Param fix */ -#define ULTRIX_ATOF_PARAM_FIXIDX 98 +#define ULTRIX_ATOF_PARAM_FIXIDX 96 tSCC zUltrix_Atof_ParamName[] = "ultrix_atof_param"; @@ -3922,7 +3858,7 @@ const char* apzUltrix_Atof_ParamPatch[] = { "sed", * * Description of Ultrix_Const fix */ -#define ULTRIX_CONST_FIXIDX 99 +#define ULTRIX_CONST_FIXIDX 97 tSCC zUltrix_ConstName[] = "ultrix_const"; @@ -3957,7 +3893,7 @@ const char* apzUltrix_ConstPatch[] = { "sed", * * Description of Ultrix_Ifdef fix */ -#define ULTRIX_IFDEF_FIXIDX 100 +#define ULTRIX_IFDEF_FIXIDX 98 tSCC zUltrix_IfdefName[] = "ultrix_ifdef"; @@ -3992,7 +3928,7 @@ const char* apzUltrix_IfdefPatch[] = { "sed", * * Description of Ultrix_Nested_Cmnt fix */ -#define ULTRIX_NESTED_CMNT_FIXIDX 101 +#define ULTRIX_NESTED_CMNT_FIXIDX 99 tSCC zUltrix_Nested_CmntName[] = "ultrix_nested_cmnt"; @@ -4019,7 +3955,7 @@ const char* apzUltrix_Nested_CmntPatch[] = { "sed", * * Description of Ultrix_Static fix */ -#define ULTRIX_STATIC_FIXIDX 102 +#define ULTRIX_STATIC_FIXIDX 100 tSCC zUltrix_StaticName[] = "ultrix_static"; @@ -4056,7 +3992,7 @@ const char* apzUltrix_StaticPatch[] = { "sed", * * Description of Undefine_Null fix */ -#define UNDEFINE_NULL_FIXIDX 103 +#define UNDEFINE_NULL_FIXIDX 101 tSCC zUndefine_NullName[] = "undefine_null"; @@ -4098,7 +4034,7 @@ const char* apzUndefine_NullPatch[] = { "sed", * * Description of Unixware7_Byteorder_Fix fix */ -#define UNIXWARE7_BYTEORDER_FIX_FIXIDX 104 +#define UNIXWARE7_BYTEORDER_FIX_FIXIDX 102 tSCC zUnixware7_Byteorder_FixName[] = "unixware7_byteorder_fix"; @@ -4141,7 +4077,7 @@ const char* apzUnixware7_Byteorder_FixPatch[] = { "sed", * * Description of Va_I960_Macro fix */ -#define VA_I960_MACRO_FIXIDX 105 +#define VA_I960_MACRO_FIXIDX 103 tSCC zVa_I960_MacroName[] = "va_i960_macro"; @@ -4179,7 +4115,7 @@ const char* apzVa_I960_MacroPatch[] = { "sed", * * Description of Void_Null fix */ -#define VOID_NULL_FIXIDX 106 +#define VOID_NULL_FIXIDX 104 tSCC zVoid_NullName[] = "void_null"; @@ -4214,7 +4150,7 @@ const char* apzVoid_NullPatch[] = { "sed", * * Description of Vxworks_Gcc_Problem fix */ -#define VXWORKS_GCC_PROBLEM_FIXIDX 107 +#define VXWORKS_GCC_PROBLEM_FIXIDX 105 tSCC zVxworks_Gcc_ProblemName[] = "vxworks_gcc_problem"; @@ -4264,7 +4200,7 @@ const char* apzVxworks_Gcc_ProblemPatch[] = { "sed", * * Description of Vxworks_Needs_Vxtypes fix */ -#define VXWORKS_NEEDS_VXTYPES_FIXIDX 108 +#define VXWORKS_NEEDS_VXTYPES_FIXIDX 106 tSCC zVxworks_Needs_VxtypesName[] = "vxworks_needs_vxtypes"; @@ -4299,7 +4235,7 @@ const char* apzVxworks_Needs_VxtypesPatch[] = { "sed", * * Description of Vxworks_Needs_Vxworks fix */ -#define VXWORKS_NEEDS_VXWORKS_FIXIDX 109 +#define VXWORKS_NEEDS_VXWORKS_FIXIDX 107 tSCC zVxworks_Needs_VxworksName[] = "vxworks_needs_vxworks"; @@ -4348,7 +4284,7 @@ const char* apzVxworks_Needs_VxworksPatch[] = { "sed", * * Description of Vxworks_Time fix */ -#define VXWORKS_TIME_FIXIDX 110 +#define VXWORKS_TIME_FIXIDX 108 tSCC zVxworks_TimeName[] = "vxworks_time"; @@ -4399,7 +4335,7 @@ typedef void (*__gcc_VOIDFUNCPTR) ();\\\n\ * * Description of X11_Class fix */ -#define X11_CLASS_FIXIDX 111 +#define X11_CLASS_FIXIDX 109 tSCC zX11_ClassName[] = "x11_class"; @@ -4439,7 +4375,7 @@ const char* apzX11_ClassPatch[] = { "sed", * * Description of X11_Class_Usage fix */ -#define X11_CLASS_USAGE_FIXIDX 112 +#define X11_CLASS_USAGE_FIXIDX 110 tSCC zX11_Class_UsageName[] = "x11_class_usage"; @@ -4474,7 +4410,7 @@ const char* apzX11_Class_UsagePatch[] = { "sed", * * Description of X11_New fix */ -#define X11_NEW_FIXIDX 113 +#define X11_NEW_FIXIDX 111 tSCC zX11_NewName[] = "x11_new"; @@ -4515,7 +4451,7 @@ const char* apzX11_NewPatch[] = { "sed", * * Description of X11_Sprintf fix */ -#define X11_SPRINTF_FIXIDX 114 +#define X11_SPRINTF_FIXIDX 112 tSCC zX11_SprintfName[] = "x11_sprintf"; @@ -4555,7 +4491,7 @@ extern char *\tsprintf();\\\n\ */ #define REGEX_COUNT 98 #define MACH_LIST_SIZE_LIMIT 279 -#define FIX_COUNT 115 +#define FIX_COUNT 113 tFixDesc fixDescList[ FIX_COUNT ] = { { zAaa_Ki_IfaceName, zAaa_Ki_IfaceList, @@ -4698,11 +4634,6 @@ tFixDesc fixDescList[ FIX_COUNT ] = { DEC_INTERN_ASM_TEST_CT, FD_MACH_ONLY, aDec_Intern_AsmTests, apzDec_Intern_AsmPatch }, - { zNo_Double_SlashName, zNo_Double_SlashList, - apzNo_Double_SlashMachs, (regex_t*)NULL, - NO_DOUBLE_SLASH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aNo_Double_SlashTests, apzNo_Double_SlashPatch }, - { zEcd_CursorName, zEcd_CursorList, apzEcd_CursorMachs, (regex_t*)NULL, ECD_CURSOR_TEST_CT, FD_MACH_ONLY, @@ -4713,11 +4644,6 @@ tFixDesc fixDescList[ FIX_COUNT ] = { SCO5_STAT_WRAPPERS_TEST_CT, FD_MACH_ONLY, aSco5_Stat_WrappersTests, apzSco5_Stat_WrappersPatch }, - { zEnd_Else_LabelName, zEnd_Else_LabelList, - apzEnd_Else_LabelMachs, (regex_t*)NULL, - END_ELSE_LABEL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, - aEnd_Else_LabelTests, apzEnd_Else_LabelPatch }, - { zHp_InlineName, zHp_InlineList, apzHp_InlineMachs, (regex_t*)NULL, HP_INLINE_TEST_CT, FD_MACH_ONLY, diff --git a/gcc/fixinc/fixlib.c b/gcc/fixinc/fixlib.c index edd0be6daab..6ca564638fa 100644 --- a/gcc/fixinc/fixlib.c +++ b/gcc/fixinc/fixlib.c @@ -122,7 +122,11 @@ is_cxx_header (fname, text) tSCC cxxpat[] = "\ extern[ \t]*\"C\\+\\+\"|\ -\\*-[ \t]*([mM]ode:[ \t]*)?[cC]\\+\\+[; \t]*-\\*-|\ -template[ \t]*<"; +template[ \t]*<|\ +^[ \t]*class[ \t]|\ +(public|private|protected):|\ +^[ \t]*#[ \t]*pragma[ \t]+(interface|implementation)\ +"; static regex_t cxxre; static int compiled; @@ -187,12 +191,16 @@ static regex_t mn_name_re; static int mn_compiled = 0; -void +int mn_get_regexps( label_re, name_re, who ) regex_t **label_re; regex_t **name_re; tCC *who; { + /* Maybe we don't need to do this fix at all? */ + if (mn_name_pat[0] == '\0') + return 1; + if (! mn_compiled) { compile_re (mn_label_pat, &mn_label_re, 1, "label pattern", who); @@ -201,4 +209,5 @@ mn_get_regexps( label_re, name_re, who ) } *label_re = &mn_label_re; *name_re = &mn_name_re; + return 0; } diff --git a/gcc/fixinc/fixlib.h b/gcc/fixinc/fixlib.h index 22ab56a3de5..bc43977922c 100644 --- a/gcc/fixinc/fixlib.h +++ b/gcc/fixinc/fixlib.h @@ -99,6 +99,6 @@ char * load_file_data _P_(( FILE* fp )); t_bool is_cxx_header _P_(( tCC* filename, tCC* filetext )); void compile_re _P_(( tCC* pat, regex_t* re, int match, tCC *e1, tCC *e2 )); -void mn_get_regexps _P_(( regex_t** label_re, regex_t** name_re, +int mn_get_regexps _P_(( regex_t** label_re, regex_t** name_re, tCC *who )); #endif /* FIXINCLUDES_FIXLIB_H */ diff --git a/gcc/fixinc/fixtests.c b/gcc/fixinc/fixtests.c index 5edd75999ab..ef821e1db11 100644 --- a/gcc/fixinc/fixtests.c +++ b/gcc/fixinc/fixtests.c @@ -275,7 +275,8 @@ TEST_FOR_FIX_PROC_HEAD( machine_name_test ) regmatch_t match[2]; tCC *base, *limit; - mn_get_regexps(&label_re, &name_re, "machine_name_test"); + if (mn_get_regexps(&label_re, &name_re, "machine_name_test")) + return SKIP_FIX; for (base = text; regexec (label_re, base, 2, match, 0) == 0; diff --git a/gcc/fixinc/gen-machname.h b/gcc/fixinc/gen-machname.h new file mode 100644 index 00000000000..361b3aff546 --- /dev/null +++ b/gcc/fixinc/gen-machname.h @@ -0,0 +1,46 @@ +#! /bin/sh + +# Copyright (C) 2000 Free Software Foundation, Inc. +# This file is part of GNU CC. + +# GNU CC 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 version. + +# GNU CC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or 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 +# along with GNU CC; see the file COPYING. If not, write to +# the Free Software Foundation, 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# This script extracts from the specs file all the predefined macros +# that are not in the C89 reserved namespace (the reserved namespace +# is all identifiers beginnning with two underscores or one underscore +# followed by a capital letter). The specs file is on standard input. +# A #define for a regular expression to find any of those macros in a +# header file is written to standard output. + +# Note dependency on ASCII. \040 = space, \011 = tab, \012 = newline. +# tr ' ' '\n' is, alas, not portable. + +tr -s '\040\011' '\012\012' | + sed -n 's/^.*-D\([a-zA-Z_][a-zA-Z0-9_]*\).*$/\1/p' | + sort -u > mn.T + +if grep -v '^_[_A-Z]' mn.T > mn.U +then + echo "Forbidden identifiers: `tr '\012' ' ' &2 + sed 's/^/\\\\/' mn.V + echo '' >>mn.V + sed 's/^/#define MN_NAME_PAT "/; s/|$/"/' < mn.V +else + echo "No forbidden identifiers defined by this target" >&2 + echo '#define MN_NAME_PAT ""' +fi +rm -f mn.[TUV] +exit 0 diff --git a/gcc/fixinc/inclhack.def b/gcc/fixinc/inclhack.def index 52d9e94d596..d4785c4f9df 100644 --- a/gcc/fixinc/inclhack.def +++ b/gcc/fixinc/inclhack.def @@ -765,6 +765,7 @@ fix = { }; +#ifdef OLD_CPP /* * Remove the double-slash comments. The "double_slash" test will * try to ignore C++ headers by checking for "CC/", "xx/" and "++/" @@ -776,6 +777,7 @@ fix = { c_test = "double_slash"; c_fix = "no_double_slash"; }; +#endif /* @@ -811,6 +813,7 @@ fix = { }; +#ifdef OLD_CPP /* * Fix else and endif directives that contain non-commentary text */ @@ -824,6 +827,7 @@ fix = { c_test = "else_endif_label"; c_fix = "else_endif_label"; }; +#endif /* @@ -846,7 +850,7 @@ fix = { hackname = hp_sysfile; files = sys/file.h; select = "HPUX_SOURCE"; - sed = 's/(\.\.\.)/(struct file * ...)/'; + sed = 's/(\.\.\.)/(struct file *, ...)/'; }; @@ -1282,88 +1286,23 @@ fix = { * the class exception defined in the C++ file std/stdexcept.h. We * redefine it to __math_exception. This is not a great fix, but I * haven't been able to think of anything better. + * Note that we have to put the #ifdef/#endif blocks at beginning + * and end of file, because fixproto runs after us and may insert + * additional references to struct exception. */ fix = { hackname = math_exception; files = math.h; select = "struct exception"; bypass = "We have a problem when using C\\+\\+"; - sed = "/struct exception/i\\\n" + sed = "1i\\\n" "#ifdef __cplusplus\\\n" "#define exception __math_exception\\\n" "#endif\n"; - sed = "/struct exception/a\\\n" + sed = "$a\\\n" "#ifdef __cplusplus\\\n" "#undef exception\\\n" "#endif\n"; - -#ifdef MATH_EXCEPTION_FIXED - sed = "/matherr/i\\\n" - "#ifdef __cplusplus\\\n" - "#define exception __math_exception\\\n" - "#endif\n"; - - sed = "/matherr/a\\\n" - "#ifdef __cplusplus\\\n" - "#undef exception\\\n" - "#endif\n"; - -I think this patch needs some more thinking. -This is from SVR4.2 (With '#' replaced with '@'). -Perhaps we could do without the "/matherr/a" entries? -Can we bypass the entire fix if someone was astute -enough to have '#ifdef __cplusplus' anywhere in the file? - -We can definitely do without the "/matherr/a" entries. They are -there to cover the case where matherr is declared with no prototype --- extern int matherr(); -- but we don't need a fix then since there -is no reference to struct exception. - -Bypassing on "#ifdef __cplusplus" is too optimistic, but I've stuck -in a bypass for the comment in the glibc 2.1 header that indicates -awareness of the problem. Hmm. Could we use a shell test that did -cpp -D__cplusplus | grep "struct exception" ? - -*** /usr/include/math.h Fri Apr 3 18:54:59 1998 ---- math.h Sun May 9 07:28:58 1999 -*************** -*** 25,31 **** ---- 25,37 ---- - - @ifndef __cplusplus - -+ @ifdef __cplusplus -+ @define exception __math_exception -+ @endif - struct exception -+ @ifdef __cplusplus -+ @undef exception -+ @endif - { - int type; - char *name; -*************** -*** 34,40 **** ---- 40,58 ---- - double retval; - }; - -+ @ifdef __cplusplus -+ @define exception __math_exception -+ @endif -+ @ifdef __cplusplus -+ @define exception __math_exception -+ @endif - extern int matherr(struct exception *); -+ @ifdef __cplusplus -+ @undef exception -+ @endif -+ @ifdef __cplusplus -+ @undef exception -+ @endif - - @endif /*__cplusplus*/ -#endif }; fix = { diff --git a/gcc/fixinc/inclhack.sh b/gcc/fixinc/inclhack.sh index 647782e87ed..60c17195d07 100755 --- a/gcc/fixinc/inclhack.sh +++ b/gcc/fixinc/inclhack.sh @@ -6,7 +6,7 @@ # files which are fixed to work correctly with ANSI C and placed in a # directory that GNU C will search. # -# This script contains 115 fixup scripts. +# This script contains 113 fixup scripts. # # See README-fixinc for more information. # @@ -1263,22 +1263,6 @@ struct rusage; esac - # - # Fix No_Double_Slash - # - if ${FIXTESTS} ${file} double_slash - then - fixlist="${fixlist} - no_double_slash" - if [ ! -r ${DESTFILE} ] - then infile=${file} - else infile=${DESTFILE} ; fi - ${FIXFIXES} ${file} no_double_slash < $infile > ${DESTDIR}/fixinc.tmp - rm -f ${DESTFILE} - mv -f ${DESTDIR}/fixinc.tmp ${DESTFILE} - fi # end of c_test 'if' - - # # Fix Ecd_Cursor # @@ -1329,22 +1313,6 @@ extern "C"\ esac - # - # Fix End_Else_Label - # - if ${FIXTESTS} ${file} else_endif_label - then - fixlist="${fixlist} - end_else_label" - if [ ! -r ${DESTFILE} ] - then infile=${file} - else infile=${DESTFILE} ; fi - ${FIXFIXES} ${file} else_endif_label < $infile > ${DESTDIR}/fixinc.tmp - rm -f ${DESTFILE} - mv -f ${DESTDIR}/fixinc.tmp ${DESTFILE} - fi # end of c_test 'if' - - # # Fix Hp_Inline # @@ -1379,7 +1347,7 @@ extern "C"\ then infile=${file} else infile=${DESTFILE} ; fi - sed -e 's/(\.\.\.)/(struct file * ...)/' \ + sed -e 's/(\.\.\.)/(struct file *, ...)/' \ < $infile > ${DESTDIR}/fixinc.tmp rm -f ${DESTFILE} mv -f ${DESTDIR}/fixinc.tmp ${DESTFILE} @@ -2060,12 +2028,12 @@ static __inline__ double fake_hypot (x, y)\ then infile=${file} else infile=${DESTFILE} ; fi - sed -e '/struct exception/i\ + sed -e '1i\ #ifdef __cplusplus\ #define exception __math_exception\ #endif ' \ - -e '/struct exception/a\ + -e '$a\ #ifdef __cplusplus\ #undef exception\ #endif diff --git a/gcc/frame.c b/gcc/frame.c index 717849fe3b8..dc5d3a9c9ad 100644 --- a/gcc/frame.c +++ b/gcc/frame.c @@ -610,12 +610,14 @@ find_fde (void *pc) { fde **p = ob->fde_array; - for (; *p; ++p) + do { f = search_fdes (*p, pc); if (f) break; + p++; } + while (*p); } else f = search_fdes (ob->fde_begin, pc); diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c index 2775751aca9..368b5c6dd5b 100644 --- a/gcc/libgcc2.c +++ b/gcc/libgcc2.c @@ -1881,11 +1881,6 @@ __bb_fork_func (void) #define BBINBUFSIZE 500 -/* BBINBUFSIZE-1 with double quotes. We could use #BBINBUFSIZE or - "BBINBUFSIZE" but want to avoid trouble with preprocessors. */ - -#define BBINBUFSIZESTR "499" - struct bb_edge { struct bb_edge *next; @@ -2163,8 +2158,8 @@ found: ; struct bb_edge *bucket = bb_hashbuckets[i]; for ( ; bucket; bucket = bucket->next ) { - fprintf (file, "Jump from block 0x%.*lx to " - "block 0x%.*lx executed %*lu time(s)\n", + fprintf (file, + "Jump from block 0x%.*lx to block 0x%.*lx executed %*lu time(s)\n", addr_len, bucket->src_addr, addr_len, bucket->dst_addr, cnt_len, bucket->count); @@ -2235,8 +2230,12 @@ __bb_init_prg (void) if (!(file = fopen ("bb.in", "r"))) return; - while(fscanf (file, " %" BBINBUFSIZESTR "s ", buf) != EOF) + while(fgets (buf, BBINBUFSIZE, file) != 0) { + i = strlen (buf); + if (buf[i] == '\n') + buf[i--] = '\0'; + p = buf; if (*p == '-') { diff --git a/gcc/unroll.c b/gcc/unroll.c index 7f3658eb262..780a7bd99e5 100644 --- a/gcc/unroll.c +++ b/gcc/unroll.c @@ -234,7 +234,7 @@ unroll_loop (loop, insn_count, end_insert_before, strength_reduce_p) { int i, j; unsigned HOST_WIDE_INT temp; - int unroll_number = 1; + int unroll_number; rtx copy_start, copy_end; rtx insn, sequence, pattern, tem; int max_labelno, max_insnno; @@ -248,7 +248,7 @@ unroll_loop (loop, insn_count, end_insert_before, strength_reduce_p) rtx start_label; struct iv_class *bl; int splitting_not_safe = 0; - enum unroll_types unroll_type; + enum unroll_types unroll_type = UNROLL_NAIVE; int loop_preconditioned = 0; rtx safety_label; /* This points to the last real insn in the loop, which should be either @@ -437,7 +437,7 @@ unroll_loop (loop, insn_count, end_insert_before, strength_reduce_p) /* Default case, calculate number of times to unroll loop based on its size. */ - if (unroll_number == 1) + if (unroll_type == UNROLL_NAIVE) { if (8 * insn_count < MAX_UNROLLED_INSNS) unroll_number = 8; @@ -445,8 +445,6 @@ unroll_loop (loop, insn_count, end_insert_before, strength_reduce_p) unroll_number = 4; else unroll_number = 2; - - unroll_type = UNROLL_NAIVE; } /* Now we know how many times to unroll the loop. */