* 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 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 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: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