diff options
| -rw-r--r-- | gcc/config/i386/i386.c | 310 | ||||
| -rw-r--r-- | gcc/config/i386/i386.h | 35 | ||||
| -rw-r--r-- | gcc/fixinc/Makefile.in | 18 | ||||
| -rw-r--r-- | gcc/fixinc/fixfixes.c | 6 | ||||
| -rw-r--r-- | gcc/fixinc/fixincl.c | 2 | ||||
| -rw-r--r-- | gcc/fixinc/fixincl.x | 254 | ||||
| -rw-r--r-- | gcc/fixinc/fixlib.c | 13 | ||||
| -rw-r--r-- | gcc/fixinc/fixlib.h | 2 | ||||
| -rw-r--r-- | gcc/fixinc/fixtests.c | 3 | ||||
| -rw-r--r-- | gcc/fixinc/gen-machname.h | 46 | ||||
| -rw-r--r-- | gcc/fixinc/inclhack.def | 81 | ||||
| -rwxr-xr-x | gcc/fixinc/inclhack.sh | 40 | ||||
| -rw-r--r-- | gcc/frame.c | 4 | ||||
| -rw-r--r-- | gcc/libgcc2.c | 15 | ||||
| -rw-r--r-- | gcc/unroll.c | 8 | 
15 files changed, 374 insertions, 463 deletions
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,166 +6215,185 @@ ix86_pent_find_pair (e_ready, ready, type, first)    return bestinsnp;  } -/* We are about to being issuing insns for this clock cycle.   -   Override the default sort algorithm to better slot instructions.  */ +/* Subroutines of ix86_sched_reorder.  */ -int -ix86_sched_reorder (dump, sched_verbose, ready, n_ready, clock_var) -     FILE *dump ATTRIBUTE_UNUSED; -     int sched_verbose ATTRIBUTE_UNUSED; +void +ix86_sched_reorder_pentium (ready, e_ready)       rtx *ready; -     int n_ready, clock_var ATTRIBUTE_UNUSED; +     rtx *e_ready;  { -  rtx *e_ready = ready + n_ready - 1; +  enum attr_pent_pair pair1, pair2;    rtx *insnp; -  int i; -  if (n_ready < 2) -    goto out; +  /* 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.  */ -  switch (ix86_cpu) +  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)      { -    default: -      goto out; +      insnp = ix86_pent_find_pair (e_ready-1, ready, +				   PENT_PAIR_PU, *e_ready); +      if (insnp) +	pair2 = PENT_PAIR_PU; +    } -    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; +  /* 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; +    } -	pair1 = ix86_safe_pent_pair (*e_ready); +  /* 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 the first insn is non-pairable, let it be.  */ -	if (pair1 == PENT_PAIR_NP) -	  goto out; -	pair2 = PENT_PAIR_NP; +  if (pair2 == PENT_PAIR_NP) +    return; -	/* 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; -	  } +  /* 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); +} -	/* 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; -	  } +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; -	/* 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; -	  } +  /* 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.  */ -	if (pair2 == PENT_PAIR_NP) -	  goto out; +  memcpy (decode, ix86_sched_data.ppro.decode, sizeof(decode)); +  issued_this_cycle = 0; -	/* 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); -      } -      break; +  insnp = e_ready; +  cur_uops = ix86_safe_ppro_uops (*insnp); -    case PROCESSOR_PENTIUMPRO: -      { -	rtx decode[3]; -	enum attr_ppro_uops cur_uops; -	int issued_this_cycle; +  /* 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; +	} -	/* 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.  */ +      /* 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); +	} -	memcpy (decode, ix86_sched_data.ppro.decode, sizeof(decode)); -	issued_this_cycle = 0; +      /* 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); - -	/* 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) +	while (cur_uops != PPRO_UOPS_ONE)  	  { -	    if (cur_uops == PPRO_UOPS_MANY) -	      { -		decode[0] = *insnp; -		goto ppro_done; -	      } +	    if (insnp == ready) +	      break; +	    cur_uops = ix86_safe_ppro_uops (*--insnp); +	  } -	    /* 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); -	      } +	/* 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; +	  } -	    /* If so, move it to the head of the line.  */ -	    if (cur_uops == PPRO_UOPS_FEW) -	      ix86_reorder_insn (insnp, e_ready); +	/* ??? Didn't find one.  Ideally, here we would do a lazy split +	   of 2-uop insns, issue one and queue the other.  */ +      } -	    /* Issue the head of the queue.  */ -	    issued_this_cycle = 1; -	    decode[0] = *e_ready--; -	  } + ppro_done: +  if (issued_this_cycle == 0) +    issued_this_cycle = 1; +  ix86_sched_data.ppro.issued_this_cycle = issued_this_cycle; +} -	/* 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; +   +/* 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; +     int clock_var ATTRIBUTE_UNUSED; +{ +  rtx *e_ready = ready + n_ready - 1; -	      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); -		} +  if (n_ready < 2) +    goto out; -	      /* 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; -		} +  switch (ix86_cpu) +    { +    default: +      break; -	      /* ??? Didn't find one.  Ideally, here we would do a lazy split -		 of 2-uop insns, issue one and queue the other.  */ -	    } +    case PROCESSOR_PENTIUM: +      ix86_sched_reorder_pentium (ready, e_ready); +      break; -      ppro_done: -	if (issued_this_cycle == 0) -	  issued_this_cycle = 1; -	ix86_sched_data.ppro.issued_this_cycle = issued_this_cycle; -      } +    case PROCESSOR_PENTIUMPRO: +      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.T`" -	@sed 's/^/\\\\</; s/$$/\\\\>/' <mn.T | 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.   * @@ -1292,41 +1292,9 @@ const char* apzDec_Intern_AsmPatch[] = { "sed",  /* * * * * * * * * * * * * * * * * * * * * * * * * *   * - *  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"; @@ -1388,41 +1356,9 @@ extern \"C\"\\\n\  /* * * * * * * * * * * * * * * * * * * * * * * * * *   * - *  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' ' ' <mn.U`" >&2 +    sed 's/^/\\\\</; s/$/\\\\>/' <mn.U | tr '\012' '|' > 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" -               "#ifdef __cplusplus\\\n" -               "#define exception __math_exception\\\n" -               "#endif\n"; -    sed      = "/struct exception/a\\\n" -               "#ifdef __cplusplus\\\n" -               "#undef exception\\\n" -               "#endif\n"; - -#ifdef MATH_EXCEPTION_FIXED -    sed      = "/matherr/i\\\n" +    sed      = "1i\\\n"                 "#ifdef __cplusplus\\\n"                 "#define exception __math_exception\\\n"                 "#endif\n"; - -    sed      = "/matherr/a\\\n" +    sed      = "$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.  # @@ -1264,22 +1264,6 @@ struct rusage;      # -    # 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      #      case "${file}" in ./sunwindow/win_lock.h | \ @@ -1330,22 +1314,6 @@ extern "C"\      # -    # 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      #      case "${file}" in ./sys/spinlock.h ) @@ -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.  */  | 

