[gnu.g++.lib.bug] test8, test10 and test23 fails

perf@efd.lth.se (03/31/89)

Environment:

	Sun 3/280, 3/50
	SunOS 4.0.1 
	g++ 1.34.1
	libg++ 1.34.0


Test 8,10 and 23 fails with the following output. (Test23 works ok in
a window with 24 rows.) Compiling without optimization, as someone
suggested in gnu.g++.lib.bug, doesn't change anything.

------- test8 -------------------------------------------------
BitSet tests:
a = 0*
b = 0000000000000000000000000010*
Failed assertion b[10] == 1 at line 65 of `test8.cc'.
IOT trap (core dumped)
---------------------------------------------------------------

------- test10 ------------------------------------------------
five random ACG integers:
1525072166 1954057046 3406008937 226879594 4107049426 
five random MLCG integers:
1341853672 83475514 936613571 888739672 2097844081 
Binomial r1( 100, 0.50, &gen1) ...
five samples:
Failed assertion result.d < 1.0 && result.d >= 0 at line 77 of `../g++-include/RNG.h'.
IOT trap (core dumped)
---------------------------------------------------------------

------- test23 ------------------------------------------------
CursesWindow Error: Cannot construct subwindow
IOT trap (core dumped)
---------------------------------------------------------------


 ____________________________________________________________________________
| Per Foreby                     |    Email: perf@efd.lth.se                 |
| System manager at EFD          |    Snail: Tekniska Hogskolan i Lund       |
| Lund Institute of Technology   |           Box 118, S-221 00 LUND, Sweden  |
| Sweden                         |    Phone: int + 46 46-10 75 98            |
|________________________________|___________________________________________|

dl@ROCKY.OSWEGO.EDU (Doug Lea) (03/31/89)

About test8:

There was a typo in a preliminary version of libg++-1.34.0
src/BitSet.cc:longtoBitSet that caused it to fail on `big-endian'
machines, and that you might have if you ftp'ed it from rocky. The
correct version is:

BitSetTmp longtoBitSet(unsigned long w)
{
  unsigned short u[2];
  u[0] = w & ((unsigned short)(~(0)));
  u[1] = w >> BITSETBITS;
  BitSetRep* r = BitSetalloc(0, &u[0], 2, 0, 3);
  trim(r);
  return r;
}

If this is not your problem, try compiling *without* the -fsave-memoized
option, which is buggy in g++-1.34.1

About test10:

As was previously posted, you must, on a sun3, compile src/RNG.cc with
the -ffloat-store option.

About test23:

No one has been able to tell me how/why this sometimes fails on Sun3s
and Sun4s. The test program does require running on a screen of at
least 24X80, but it seems that it sometimes fails in calling
libcurses:subwin even in such cases, but never when run from a remote
terminal. Any further diagnosis (e.g., a gdb run after compiling your
local libcurses library -g) would be very much apreciated.

-Doug