Article View: gnu.g++.bug
Article #643GNU C++ test 1.36.2 (getting better)
From: Michael Tiemann
Date: Thu, 30 Nov 1989 02:12
Date: Thu, 30 Nov 1989 02:12
150 lines
5324 bytes
5324 bytes
I have a cleaned version of GNU C++ 1.36.2- on
interviews.stanford.edu:~ftp/pub/g++.ytar.Z
It compiles the InterViews 2.6 snapshot, a hacked ET++, and libg++.
With the following patch, it also compiles other codes. I am still
plugging away at problems, but I consider this version the "latest and
greatest" so far. Here's the patch. Remember that if you use this
compiler on a Sun4, you still need the Sparc patch I sent out with the
first announcement. It is included here for reference.
Michael
arkesden% diff -c2 cplus-class.c~ cplus-class.c
*** cplus-class.c~ Tue Nov 28 17:48:45 1989
--- cplus-class.c Wed Nov 29 17:46:08 1989
***************
*** 4402,4406 ****
found_and_maybe_warn:
if (cp->harshness[0] & 128)
! error ("non-const member function called from const member function");
goto found_and_ok;
}
--- 4402,4414 ----
found_and_maybe_warn:
if (cp->harshness[0] & 128)
! {
! if (flags & LOOKUP_COMPLAIN)
! {
! error_with_decl (cp->function, "non-const member function `%s'");
! error ("called from const member function at this point in file");
! }
! /* Not good enough for a match. */
! else return error_mark_node;
! }
goto found_and_ok;
}
arkesden% diff -c2 config/sparc.md~ config/sparc.md
*** config/sparc.md~ Fri Sep 1 17:46:40 1989
--- config/sparc.md Sat Nov 18 09:04:10 1989
***************
*** 1011,1015 ****
return \"sll %1,0x10,%0\;srl %0,0x10,%0\";
if (GET_CODE (operands[1]) == CONST_INT)
! abort ();
if (CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))
{
--- 1011,1020 ----
return \"sll %1,0x10,%0\;srl %0,0x10,%0\";
if (GET_CODE (operands[1]) == CONST_INT)
! {
! operands[1] = gen_rtx (CONST_INT, VOIDmode,
! INTVAL (operands[1]) & 0xffff);
! output_asm_insn (\"set %1,%0\", operands);
! return \"\";
! }
if (CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))
{
***************
*** 1032,1036 ****
return \"and %1,0xff,%0\";
if (GET_CODE (operands[1]) == CONST_INT)
! abort ();
if (CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))
{
--- 1037,1046 ----
return \"and %1,0xff,%0\";
if (GET_CODE (operands[1]) == CONST_INT)
! {
! operands[1] = gen_rtx (CONST_INT, VOIDmode,
! INTVAL (operands[1]) & 0xff);
! output_asm_insn (\"set %1,%0\", operands);
! return \"\";
! }
if (CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))
{
***************
*** 1053,1057 ****
return \"and %1,0xff,%0\";
if (GET_CODE (operands[1]) == CONST_INT)
! abort ();
if (CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))
{
--- 1063,1072 ----
return \"and %1,0xff,%0\";
if (GET_CODE (operands[1]) == CONST_INT)
! {
! operands[1] = gen_rtx (CONST_INT, VOIDmode,
! INTVAL (operands[1]) & 0xff);
! output_asm_insn (\"set %1,%0\", operands);
! return \"\";
! }
if (CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))
{
***************
*** 1078,1082 ****
return \"sll %1,0x10,%0\;sra %0,0x10,%0\";
if (GET_CODE (operands[1]) == CONST_INT)
! abort ();
if (CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))
{
--- 1093,1102 ----
return \"sll %1,0x10,%0\;sra %0,0x10,%0\";
if (GET_CODE (operands[1]) == CONST_INT)
! {
! int i = (short)INTVAL (operands[1]);
! operands[1] = gen_rtx (CONST_INT, VOIDmode, i);
! output_asm_insn (\"set %1,%0\", operands);
! return \"\";
! }
if (CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))
{
***************
*** 1099,1103 ****
return \"sll %1,0x18,%0\;sra %0,0x18,%0\";
if (GET_CODE (operands[1]) == CONST_INT)
! abort ();
if (CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))
{
--- 1119,1128 ----
return \"sll %1,0x18,%0\;sra %0,0x18,%0\";
if (GET_CODE (operands[1]) == CONST_INT)
! {
! int i = (char)INTVAL (operands[1]);
! operands[1] = gen_rtx (CONST_INT, VOIDmode, i);
! output_asm_insn (\"set %1,%0\", operands);
! return \"\";
! }
if (CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))
{
***************
*** 1120,1124 ****
return \"sll %1,0x18,%0\;sra %0,0x18,%0\";
if (GET_CODE (operands[1]) == CONST_INT)
! abort ();
if (CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))
{
--- 1145,1154 ----
return \"sll %1,0x18,%0\;sra %0,0x18,%0\";
if (GET_CODE (operands[1]) == CONST_INT)
! {
! int i = (char)INTVAL (operands[1]);
! operands[1] = gen_rtx (CONST_INT, VOIDmode, i);
! output_asm_insn (\"set %1,%0\", operands);
! return \"\";
! }
if (CONSTANT_ADDRESS_P (XEXP (operands[1], 0)))
{
arkesden%
Michael
Technical Details
Message-ID:
<8911300212.AA01948@arkesden.sun.com>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!arkesden.eng.sun.com!tiemannShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!arkesden.eng.sun.com!tiemann From: tiemann@arkesden.eng.sun.com (Michael Tiemann) Newsgroups: gnu.g++.bug Subject: GNU C++ test 1.36.2 (getting better) Message-ID: <8911300212.AA01948@arkesden.sun.com> Date: 30 Nov 89 02:12:04 GMT Sender: daemon@tut.cis.ohio-state.edu Reply-To: tiemann@sun.com Distribution: gnu Organization: GNUs Not Usenet Lines: 150