frame.c (find_fde): Convert for loop to do-while so compiler sees it's always executed at least once.

* frame.c (find_fde): Convert for loop to do-while so compiler
	sees it's always executed at least once.
	* libgcc2.c (BBINBUFSIZE): Kill.
	(__bb_init_prg): Use fgets.
	(__bb_exit_trace_func): Don't paste strings.
	* unroll.c (unroll_loop): Initialize unroll_type, not
	unroll_number, and tweak logic to match.

	* i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
	all failure paths.
	(ix86_flags_dependant): Likewise.  Disentangle control flow.
	(ix86_sched_reorder): Break guts out to
	ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
	(ix86_sched_reorder_ppro): Initialize pair2 and insnp before
	any possible use.

	* i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
	use string concatenation.  Don't save and restore esi.

	* fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
	(machname.h): Remove script to separate file.  Use two-step
	sequence so target is not created if script fails.
	* fixinc/gen-machname.h: New file.  Handle case where no non-reserved
	identifiers are defined.
	* fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
	an empty string, machine_name doesn't need to do anything at
	all.
	(is_cxx_header): Add more cases to regexp.
	* fixinc/fixlib.h: Update prototype.
	* fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
	mn_get_regexps.
	* fixinc/fixincl.c: Define NO_BOGOSITY.

	* fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
	(hp_sysfile): Add missing comma.
	(math_exception): Put the wrapper ifdefs at the beginning and
	the end of the file.
	* fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.

From-SVN: r31744
This commit is contained in:
Zack Weinberg 2000-02-01 23:51:38 +00:00
parent f232183759
commit 78a0d70cdf
15 changed files with 383 additions and 472 deletions

View File

@ -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;
}

View File

@ -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,

View File

@ -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

View File

@ -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] = '_';

View File

@ -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

View File

@ -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,

View File

@ -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;
}

View File

@ -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 */

View File

@ -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;

46
gcc/fixinc/gen-machname.h Normal file
View File

@ -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

View File

@ -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 = {

View File

@ -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

View File

@ -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);

View File

@ -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 == '-')
{

View File

@ -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. */