[gnu.gcc.bug] Spurious warning message from gcc 1.27

Beebe@SCIENCE.UTAH.EDU ("Nelson H.F. Beebe") (10/05/88)

Machine: Sun 3/110 OS 4.0 (~4.2BSD Unix)

GCC version 1.27

A peculiar warning message is being issued by gcc; the number in
question is 0.0.  The code came from file lib.c in the new AT&T
awk release, and I've hacked it down into something that
reproduces the behavior.  If the large structure initialization
for fldtab[] is commented out, or reduced in size the message
disappears; however, that structure is unused in the reduced
code.

305 plot79>gcc -c foo3.i
gcc -c foo3.i

foo2.c:123: warning: floating point number exceeds range of `double'
306 plot79>gcc -v
gcc version 1.27

The line in question is the one "setfval(fnrloc, 0.0);"

Here is foo3.i:

typedef double	Awkfloat;
typedef	unsigned char uchar;
typedef struct Cell {
	uchar	ctype;		 
	uchar	csub;		 
	uchar	*nval;		 
	uchar	*sval;		 
	Awkfloat fval;		 
	unsigned tval;		 
	struct Cell *cnext;	 
} Cell;

Awkfloat setfval(), getfval();
uchar	recdata[(3 * 1024)	];
extern Cell	*fnrloc;	/* FNR */

Cell fldtab[ ] = {		 
	{1, 1, (uchar *) "$0", recdata, 0.0, 0200 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
	{1, 1, 0, (uchar *) "", 0.0, 0100 | 02 | 04},
};

getrec(buf)
uchar *buf;
{
	setfval(fnrloc, 0.0);

	return 0;	 
}

-------