This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: gcc-2.95.3 April 12 incomplete C++ thunks patch breaks Linux/ia32


On Fri, May 19, 2000 at 09:30:04AM -0700, H . J . Lu wrote:
> On Fri, May 19, 2000 at 12:00:07PM +0200, Franz Sirl wrote:
> > At 23:04 18.05.00, Martin v. Loewis wrote:
> > > > Even with this patch applied there's still a regression on
> > > > powerpc-linux-gnu if you run the C++ testsuite with -O2. Does it really
> > > > work for you on x86?
> > >
> > >I'm quite certain that the behaviour of these patches should not
> > >change under optimization; so any problems you see are likely
> > >unrelated.
> > 
> > I certainly does change behaviour for me and patchwise this relates to 
> > current CVS+HJ's patch, if I use the sources before this went into CVS, all 
> > is fine with -O2. So, before going on a wild bug hunt in an compiler area 
> > I'm not really familiar with, I would like to know if this is a platform 
> > independent bug. It would be very kind if someone could run the C++ 
> > testsuite with -O2 and assure me that everything is OK on x86.
> > 
> 
> There is the difference between without -O2 and with -O2 for the
> patched 2.95 branch. As you can see, there are more C failures also.
> I didn't check gcc 2.95.2. I agree with Martin. I don't think his
> patch introduces any new optimization bugs. But it may trigger some
> existing bugs.
> 

Martin, I agree with Franz. Something seems wrong with the thunks
patch. If you run the script enclosed here under

gcc/testsuite/g++.old-deja

you will find all those failures are related to MI and virtual base
class. To me, it indicates a real problem.

Thanks.


H.J.
---
#! /bin/sh

CC=gcc
CFLAGS=-O
LDFLAGS=-lstdc++

for f in g++.mike/dyncast5.C \
g++.mike/mi1.C \
g++.mike/offset1.C \
g++.mike/p16146.C \
g++.mike/p3139.C \
g++.mike/p3708.C \
g++.mike/p3708a.C \
g++.mike/p3708b.C \
g++.mike/p4736c.C \
g++.mike/virt2.C \
g++.mike/virt5.C \
g++.robertl/eb46.C
do
  $CC $CFLAGS $f $LDFLAGS
  ./a.out
  if [ $? = 0 ]; then
    echo $f: ok
  else
    echo $f: failed
  fi
done
rm -f a.out

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]