public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* gcc 2.95.2 is buggy
@ 2000-11-24  1:57 Andries.Brouwer
  2000-11-24  4:10 ` Chris Wedgwood
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Andries.Brouwer @ 2000-11-24  1:57 UTC (permalink / raw)
  To: alan, bernds, linux-kernel, torvalds

Yesterday night I wrote

> Note: this is not yet a confirmed compiler bug

but in the meantime there is good confirmation.
This really is a bug in gcc 2.95.2.

>From bernds@redhat.com Thu Nov 23 10:45:07 2000
> Please, could you send me ...

>From torvalds@transmeta.com Thu Nov 23 18:00:48 2000
> Can we get a show of hands?

Below a demo program.

Andries

-------------------- bug.c -----------------------------
/*
 * bug.c - aeb, 001124
 *
 * This program shows a bug in gcc 2.95.2.
 * It should print 0x0 and exit.
 * For me it prints 0x84800000.
 *
 * Compile with:
 *    gcc -Wall -O2 -o bug bug.c
 */
#include <stdio.h>

struct inode {
	long long		i_size;
	struct super_block	*i_sb;
};

struct file {
	long long		f_pos;
};

struct super_block {
	int			s_blocksize;
	unsigned char		s_blocksize_bits;
	int			s_hs;
};

static char *
isofs_bread(unsigned int block)
{
	printf("0x%x\n", block);
	exit(0);
}

static int
do_isofs_readdir(struct inode *inode, struct file *filp)
{
	int bufsize = inode->i_sb->s_blocksize;
	unsigned char bufbits = inode->i_sb->s_blocksize_bits;
	unsigned int block, offset;
	char *bh = NULL;
	int hs;

 	if (filp->f_pos >= inode->i_size)
		return 0;
 
	offset = filp->f_pos & (bufsize - 1);
	block = filp->f_pos >> bufbits;
	hs = inode->i_sb->s_hs;

	while (filp->f_pos < inode->i_size) {
		if (!bh)
			bh = isofs_bread(block);

		hs += block << bufbits;

		if (hs == 0)
			filp->f_pos++;

		if (offset >= bufsize)
			offset &= bufsize - 1;

		if (*bh)
			filp->f_pos++;

		filp->f_pos++;
	}
	return 0;
}

struct super_block s;
struct inode i;
struct file f;

int
main(int argc, char **argv){
	s.s_blocksize = 512;
	s.s_blocksize_bits = 9;
	i.i_size = 2048;
	i.i_sb = &s;
	f.f_pos = 0;

	do_isofs_readdir(&i,&f);
	return 0;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: gcc 2.95.2 is buggy
  2000-11-24  1:57 gcc 2.95.2 is buggy Andries.Brouwer
@ 2000-11-24  4:10 ` Chris Wedgwood
  2000-11-24  6:10   ` Peter Samuelson
  2000-11-24  4:34 ` Gregory Maxwell
  2000-11-26 16:09 ` Alessandro Suardi
  2 siblings, 1 reply; 9+ messages in thread
From: Chris Wedgwood @ 2000-11-24  4:10 UTC (permalink / raw)
  To: Andries.Brouwer; +Cc: alan, bernds, linux-kernel, torvalds

On Fri, Nov 24, 2000 at 02:57:45AM +0100, Andries.Brouwer@cwi.nl wrote:

    /*
     * bug.c - aeb, 001124
     *
     * This program shows a bug in gcc 2.95.2.
     * It should print 0x0 and exit.
     * For me it prints 0x84800000.
     *
     * Compile with:
     *    gcc -Wall -O2 -o bug bug.c
     */

taking away -O2 is a 'fix' for now... not a very good one though.


  --cw


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: gcc 2.95.2 is buggy
  2000-11-24  1:57 gcc 2.95.2 is buggy Andries.Brouwer
  2000-11-24  4:10 ` Chris Wedgwood
@ 2000-11-24  4:34 ` Gregory Maxwell
  2000-11-24  4:47   ` Alexander Viro
  2000-11-26 16:09 ` Alessandro Suardi
  2 siblings, 1 reply; 9+ messages in thread
From: Gregory Maxwell @ 2000-11-24  4:34 UTC (permalink / raw)
  To: Andries.Brouwer; +Cc: alan, bernds, linux-kernel, torvalds

On Fri, Nov 24, 2000 at 02:57:45AM +0100, Andries.Brouwer@cwi.nl wrote:
> but in the meantime there is good confirmation.
> This really is a bug in gcc 2.95.2.

... RedHat's GCC snapshot "2.96" handles this case just fine. 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: gcc 2.95.2 is buggy
  2000-11-24  4:34 ` Gregory Maxwell
@ 2000-11-24  4:47   ` Alexander Viro
  2000-11-24 15:23     ` Tom Rini
  0 siblings, 1 reply; 9+ messages in thread
From: Alexander Viro @ 2000-11-24  4:47 UTC (permalink / raw)
  To: Gregory Maxwell; +Cc: Andries.Brouwer, alan, bernds, linux-kernel, torvalds



On Thu, 23 Nov 2000, Gregory Maxwell wrote:

> On Fri, Nov 24, 2000 at 02:57:45AM +0100, Andries.Brouwer@cwi.nl wrote:
> > but in the meantime there is good confirmation.
> > This really is a bug in gcc 2.95.2.
> 
> ... RedHat's GCC snapshot "2.96" handles this case just fine. 

Now, if you can isolate the relevant part of the diff between 2.95.2 and
RH 2.96...

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: gcc 2.95.2 is buggy
  2000-11-24  4:10 ` Chris Wedgwood
@ 2000-11-24  6:10   ` Peter Samuelson
  2000-11-24  8:27     ` kumon
  0 siblings, 1 reply; 9+ messages in thread
From: Peter Samuelson @ 2000-11-24  6:10 UTC (permalink / raw)
  To: Chris Wedgwood; +Cc: linux-kernel


[Chris Wedgwood]
> taking away -O2 is a 'fix' for now... not a very good one though.

Not if you want function inlining to work.  The kernel *won't compile*
without optimization.

Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: gcc 2.95.2 is buggy
  2000-11-24  6:10   ` Peter Samuelson
@ 2000-11-24  8:27     ` kumon
  0 siblings, 0 replies; 9+ messages in thread
From: kumon @ 2000-11-24  8:27 UTC (permalink / raw)
  To: Peter Samuelson; +Cc: Chris Wedgwood, linux-kernel, kumon

Peter Samuelson writes:
 > [Chris Wedgwood]
 > > taking away -O2 is a 'fix' for now... not a very good one though.
 > 
 > Not if you want function inlining to work.  The kernel *won't compile*
 > without optimization.

Using -O1 still works, at least for the demo program.

--
Computer Systems Laboratory, Fujitsu Labs.
kumon@flab.fujitsu.co.jp
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: gcc 2.95.2 is buggy
  2000-11-24  4:47   ` Alexander Viro
@ 2000-11-24 15:23     ` Tom Rini
  2000-11-24 15:41       ` Bernd Schmidt
  0 siblings, 1 reply; 9+ messages in thread
From: Tom Rini @ 2000-11-24 15:23 UTC (permalink / raw)
  To: Alexander Viro
  Cc: Gregory Maxwell, Andries.Brouwer, alan, bernds, linux-kernel,
	torvalds

On Thu, Nov 23, 2000 at 11:47:04PM -0500, Alexander Viro wrote:
> 
> 
> On Thu, 23 Nov 2000, Gregory Maxwell wrote:
> 
> > On Fri, Nov 24, 2000 at 02:57:45AM +0100, Andries.Brouwer@cwi.nl wrote:
> > > but in the meantime there is good confirmation.
> > > This really is a bug in gcc 2.95.2.
> > 
> > ... RedHat's GCC snapshot "2.96" handles this case just fine. 
> 
> Now, if you can isolate the relevant part of the diff between 2.95.2 and
> RH 2.96...

Well, now that there is a testcase, has anyone sent this on to the relevant
gcc lists? (The CCs I saw haven't)

-- 
Tom Rini (TR1265)
http://gate.crashing.org/~trini/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: gcc 2.95.2 is buggy
  2000-11-24 15:23     ` Tom Rini
@ 2000-11-24 15:41       ` Bernd Schmidt
  0 siblings, 0 replies; 9+ messages in thread
From: Bernd Schmidt @ 2000-11-24 15:41 UTC (permalink / raw)
  To: Tom Rini
  Cc: Alexander Viro, Gregory Maxwell, Andries.Brouwer, alan,
	linux-kernel, torvalds

On Fri, 24 Nov 2000, Tom Rini wrote:

> Well, now that there is a testcase, has anyone sent this on to the relevant
> gcc lists? (The CCs I saw haven't)

Yes.  I've just sent a fix to gcc-patches.

Bernd

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: gcc 2.95.2 is buggy
  2000-11-24  1:57 gcc 2.95.2 is buggy Andries.Brouwer
  2000-11-24  4:10 ` Chris Wedgwood
  2000-11-24  4:34 ` Gregory Maxwell
@ 2000-11-26 16:09 ` Alessandro Suardi
  2 siblings, 0 replies; 9+ messages in thread
From: Alessandro Suardi @ 2000-11-26 16:09 UTC (permalink / raw)
  To: Andries.Brouwer; +Cc: alan, bernds, linux-kernel, torvalds

(cough) doesn't reproduce on my 2.95.2...

[asuardi@princess misc]$ vi bug.c

(cut'n'paste from Andries' email)

[asuardi@princess misc]$ gcc -Wall -O2 -o bug bug.c
[asuardi@princess misc]$ ./bug
0x0
[asuardi@princess misc]$ gcc -v
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
gcc version 2.95.2 19991024 (release)

'bug' binary available upon request.


Ciao,

--alessandro      <alessandro.suardi@oracle.com> <asuardi@uninetcom.it>

Linux:  kernel 2.2.18p22/2.4.0-t11 glibc-2.1.94 gcc-2.95.2 binutils-2.10.0.33
Oracle: Oracle8i 8.1.6.1.0 Enterprise Edition for Linux
motto:  Tell the truth, there's less to remember.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2000-11-26 16:40 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2000-11-24  1:57 gcc 2.95.2 is buggy Andries.Brouwer
2000-11-24  4:10 ` Chris Wedgwood
2000-11-24  6:10   ` Peter Samuelson
2000-11-24  8:27     ` kumon
2000-11-24  4:34 ` Gregory Maxwell
2000-11-24  4:47   ` Alexander Viro
2000-11-24 15:23     ` Tom Rini
2000-11-24 15:41       ` Bernd Schmidt
2000-11-26 16:09 ` Alessandro Suardi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox