egcs-19990927: random output of genattrtab
pavenis@lanet.lv
pavenis@lanet.lv
Wed Sep 29 10:44:00 GMT 1999
Tried to build egcs-19990927 for target i586-pc-msdosdjgpp. Build often fails due
to conflicting prototypes of get_attr_length_prefix() and get_attr_length_opcode()
between generated files insn_attrtab.c and insn-attr.h (return type seems to vary
randomly between int and unsigned int).
--------------- End of output before make failed ----------------
gcc -DIN_GCC -g -DHAVE_CONFIG_H -DSTANDARD_INCLUDE_DIR=\"\$DJDIR/include\" -
DSTANDARD_INCLUDE_COMPONENT=\"\" -I. -I/devel/gcc/egcs-19990927/gcc -I/devel/gcc/egcs-19990927/gcc/config -
I/devel/gcc/egcs-19990927/gcc/../include -c insn-emit.c
gcc -c -DIN_GCC -g -DHAVE_CONFIG_H -DSTANDARD_INCLUDE_DIR=\"\$DJDIR/include\" -
DSTANDARD_INCLUDE_COMPONENT=\"\" -I. -I/devel/gcc/egcs-19990927/gcc -I/devel/gcc/egcs-19990927/gcc/config -
I/devel/gcc/egcs-19990927/gcc/../include /devel/gcc/egcs-19990927/gcc/lcm.c
gcc -c -DIN_GCC -g -DHAVE_CONFIG_H -DSTANDARD_INCLUDE_DIR=\"\$DJDIR/include\" -
DSTANDARD_INCLUDE_COMPONENT=\"\" -I. -I/devel/gcc/egcs-19990927/gcc -I/devel/gcc/egcs-19990927/gcc/config -
I/devel/gcc/egcs-19990927/gcc/../include /devel/gcc/egcs-19990927/gcc/profile.c
gcc -c -DIN_GCC -g -DHAVE_CONFIG_H -DSTANDARD_INCLUDE_DIR=\"\$DJDIR/include\" -
DSTANDARD_INCLUDE_COMPONENT=\"\" -I. -I/devel/gcc/egcs-19990927/gcc -I/devel/gcc/egcs-19990927/gcc/config -
I/devel/gcc/egcs-19990927/gcc/../include /devel/gcc/egcs-19990927/gcc/genattrtab.c
gcc -DIN_GCC -g -DHAVE_CONFIG_H -o genattrtab \
genattrtab.o rtl.o bitmap.o ggc-none.o print-rtl.o errors.o rtlanal.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case "" in
?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac `
./genattrtab /devel/gcc/egcs-19990927/gcc/config/i386/i386.md > tmp-attrtab.c
C:/DJGPP/BIN/bash.exe /devel/gcc/egcs-19990927/gcc/move-if-change tmp-attrtab.c insn-attrtab.c
touch s-attrtab
gcc -DIN_GCC -g -DHAVE_CONFIG_H -DSTANDARD_INCLUDE_DIR=\"\$DJDIR/include\" -
DSTANDARD_INCLUDE_COMPONENT=\"\" -I. -I/devel/gcc/egcs-19990927/gcc -I/devel/gcc/egcs-19990927/gcc/config -
I/devel/gcc/egcs-19990927/gcc/../include -c insn-attrtab.c
insn-attrtab.c:7784: conflicting types for `get_attr_length_prefix'
insn-attr.h:25: previous declaration of `get_attr_length_prefix'
make.exe[1]: *** [insn-attrtab.o] Error 1
make.exe[1]: Leaving directory `c:/devel/gcc/egcs-19990927/build.djg/gcc'
make.exe: *** [all-gcc] Error 2
---------------------------------------------------------------------------
Retrying make sometimes fixes the problem.
After that I simply run genattrtab with the same parameters 4 times:
#! /bin/sh
for x in 1 2 3 4; do
/genattrtab /devel/gcc/egcs-19990927/gcc/config/i386/i386.md > tmp-attrtab.c1.$x
done
and got 3 different outputs (2nd and 4th run gave identical output)
Below I'm including diffs of 3th and 4th run. egcs-19990920 seems to have the
same problem. I never had this problem earlier (egcs-1.1.X, gcc-2.95 and gcc-2.95.1,
gcc-2.95 prereleases). Of course it could be DJGPP specific problem (I have to modify
sources, but I did the same for earlier versions). I simply don't know why this happens.
Andris
---------------------------------------------------------------------------
--- tmp-attrtab.c1.3 Wed Sep 29 20:24:18 1999
+++ tmp-attrtab.c1.4 Wed Sep 29 20:26:26 1999
@@ -7430,8 +7430,8 @@
}
}
-extern unsigned int get_attr_length_opcode PROTO ((rtx));
-unsigned int
+extern int get_attr_length_opcode PROTO ((rtx));
+int
get_attr_length_opcode (insn)
rtx insn;
{
@@ -7794,11 +7794,11 @@
fatal_insn_not_found (insn);
if (((which_alternative == 0) && ((((TARGET_DOUBLE_WITH_ADD) != (0)) && ((register_operand (operands[0],
VOIDmode)) && (const1_operand (operands[2], VOIDmode)))) || (((! ((TARGET_DOUBLE_WITH_ADD) != (0))) || (!
(register_operand (operands[0], VOIDmode)))) || (! (const1_operand (operands[2], VOIDmode)))))) && (general_operand
(operands[0], HImode)))
{
- return 1 /* min 0, max 1 */;
+ return 1;
}
else
{
- return 0 /* min 0, max 0 */;
+ return 0;
}
case 158:
@@ -7807,11 +7807,11 @@
fatal_insn_not_found (insn);
if (((which_alternative != 2) && (! (pic_symbolic_operand (operands[2], SImode)))) && (general_operand (operands[0],
HImode)))
{
- return 1 /* min 0, max 1 */;
+ return 1;
}
else
{
- return 0 /* min 0, max 0 */;
+ return 0;
}
case 73:
@@ -7820,11 +7820,11 @@
fatal_insn_not_found (insn);
if ((((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)) && (general_operand (operands[0],
HImode)))
{
- return 1 /* min 0, max 1 */;
+ return 1;
}
else
{
- return 0 /* min 0, max 0 */;
+ return 0;
}
case 71:
@@ -7833,11 +7833,11 @@
fatal_insn_not_found (insn);
if ((which_alternative == 1) && (general_operand (operands[1], HImode)))
{
- return 1 /* min 0, max 1 */;
+ return 1;
}
else
{
- return 0 /* min 0, max 0 */;
+ return 0;
}
case 50:
@@ -7846,11 +7846,11 @@
fatal_insn_not_found (insn);
if ((((const0_operand (operands[1], QImode)) && ((register_operand (operands[0], QImode)) && ((TARGET_USE_MOV0) !=
(0)))) || (((! (const0_operand (operands[1], QImode))) || ((! (register_operand (operands[0], QImode))) || (! ((TARGET_USE_MOV0)
!= (0))))) && (((which_alternative == 3) || (((TARGET_MOVX) != (0)) && (which_alternative == 1))) || ((which_alternative != 3) &&
((! ((TARGET_MOVX) != (0))) || (which_alternative != 1)))))) && (general_operand (operands[0], HImode)))
{
- return 1 /* min 0, max 1 */;
+ return 1;
}
else
{
- return 0 /* min 0, max 0 */;
+ return 0;
}
case 42:
@@ -7859,11 +7859,11 @@
fatal_insn_not_found (insn);
if ((((TARGET_MOVX) != (0)) && (which_alternative == 1)) || ((which_alternative == 0) &&
((TARGET_PARTIAL_REG_STALL) == (0))))
{
- return 0 /* min 0, max 0 */;
+ return 0;
}
else
{
- return 1 /* min 0, max 1 */;
+ return 1;
}
case 41:
@@ -7872,11 +7872,11 @@
fatal_insn_not_found (insn);
if ((((! (const0_operand (operands[1], HImode))) || ((! (register_operand (operands[0], HImode))) || (! ((TARGET_USE_MOV0)
!= (0))))) && (((TARGET_MOVX) != (0)) && (which_alternative == 1))) || ((which_alternative == 0) &&
((TARGET_PARTIAL_REG_STALL) == (0))))
{
- return 0 /* min 0, max 0 */;
+ return 0;
}
else
{
- return 1 /* min 0, max 1 */;
+ return 1;
}
case 36:
@@ -7885,11 +7885,11 @@
fatal_insn_not_found (insn);
if (((! ((flag_pic) != (0))) || (! (symbolic_operand (operands[1], SImode)))) && (general_operand (operands[0], HImode)))
{
- return 1 /* min 0, max 1 */;
+ return 1;
}
else
{
- return 0 /* min 0, max 0 */;
+ return 0;
}
case 35:
@@ -7898,11 +7898,11 @@
fatal_insn_not_found (insn);
if ((((const0_operand (operands[1], SImode)) && ((register_operand (operands[0], SImode)) && ((TARGET_USE_MOV0) !=
(0)))) || (((! (const0_operand (operands[1], SImode))) || ((! (register_operand (operands[0], SImode))) || (! ((TARGET_USE_MOV0)
!= (0))))) && ((! ((flag_pic) != (0))) || (! (symbolic_operand (operands[1], SImode)))))) && (general_operand (operands[0],
HImode)))
{
- return 1 /* min 0, max 1 */;
+ return 1;
}
else
{
- return 0 /* min 0, max 0 */;
+ return 0;
}
case 39:
@@ -7910,11 +7910,11 @@
extract_insn (insn);
if (general_operand (operands[1], HImode))
{
- return 1 /* min 0, max 1 */;
+ return 1;
}
else
{
- return 0 /* min 0, max 0 */;
+ return 0;
}
case 476:
@@ -8068,23 +8068,23 @@
extract_insn (insn);
if (general_operand (operands[0], HImode))
{
- return 1 /* min 0, max 1 */;
+ return 1;
}
else
{
- return 0 /* min 0, max 0 */;
+ return 0;
}
case 48:
case 49:
- return 1 /* min 0, max 1 */;
+ return 1;
case -1:
if (GET_CODE (PATTERN (insn)) != ASM_INPUT
&& asm_noperands (PATTERN (insn)) < 0)
fatal_insn_not_found (insn);
default:
- return 0 /* min 0, max 0 */;
+ return 0;
}
}
More information about the Gcc-bugs
mailing list