[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#627084: marked as done (gcc-4.6: miscompile PARI/GP SVN revision 12000)



Your message dated Tue, 21 Feb 2012 22:28:54 +0100
with message-id <20120221212854.GA9751@yellowpig>
and subject line Re: Bug#627084: gcc-4.6: miscompile PARI/GP SVN revision 12000
has caused the Debian Bug report #627084,
regarding gcc-4.6: miscompile PARI/GP SVN revision 12000
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
627084: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=627084
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: gcc-4.6
Version: 4.6.0-7
Severity: normal

Hello Debian GCC Maintainers,

gcc 4.6 on Debian/amd64 miscompiles PARI/GP SVN revision 12000:

Step to reproduce:

wget 'http://pari.math.u-bordeaux.fr/~bill/pari-2.4.3.12000.tar.gz'
tar xf pari-2.4.3.12000.tar.gz
cd pari-2.4.3.alpha
./Configure
make gp
make bench

Result: all test suite fail.

Cause: 

The function pari_init_parser() in the file src/language/parsec.h is miscompiled.
(This file is included by src/language/parse.y).

If you replace the line 43: s_node.n=OPnboperator; by parsestate_reset(); 
(which does the same thing), then all test pass.

It seems that the issue is that the function stack_alloc() is not inlined correctly,
which cause pari_tree to be NULL (or maybe the call to pari_inline inside stack_alloc()
is not inlined correctly.

The command line used is
gcc-4.6  -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer    -I. -I../src/headers -fPIC -o
parse.o ../src/language/parse.c

It also happens with -O2, but not with -O3 -fno-inline.

It works fine with gcc 4.3, 4.4 and 4.5.

Cheers,
-- 
Bill. <ballombe@debian.org>

Imagine a large red swirl here. 



--- End Message ---
--- Begin Message ---
On Tue, Aug 02, 2011 at 11:41:21AM +0200, Bill Allombert wrote:
> reassign 627084 gcc-4.6
> thanks
> 
> Hello Matthias,
> 
> I am reassigning this bug back to gcc-4.6 since the relevant code is not included in the
> pari package in Debian.
> 
> I also provide a small test-case (tested with gcc 4.6.1-5).
> 
> /usr/bin/gcc  -O2 -Wall -fno-strict-aliasing -I. -I../src/headers -o testcase ../testcase.c
> ./testcase
> zsh: segmentation fault  sid ./testcase

Hello Matthias, 
I am closing this bug report because I found out that the testcase was invalid and
that newer gcc 4.6 work with the fixed testcase.

The testcase should do
s->offset = (unsigned long)data-(unsigned long)s;
...
void **sdat = (void **) ((unsigned long)s+s->offset);
instead of casting to char* which is not valid.

Sorry for the trouble.

Cheers,
-- 
Bill. <ballombe@debian.org>

Imagine a large red swirl here. 


--- End Message ---

Reply to: