This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Your recent change
- To: kenner at vlsi1 dot ultra dot nyu dot edu
- Subject: Re: Your recent change
- From: Mark Mitchell <mark at codesourcery dot com>
- Date: Sun, 26 Mar 2000 09:58:50 -0800
- Cc: gcc-bugs at gcc dot gnu dot org
- Organization: CodeSourcery, LLC
- References: <10003261739.AA03074@vlsi1.ultra.nyu.edu>
>>>>> "Richard" == Richard Kenner <kenner@vlsi1.ultra.nyu.edu> writes:
Richard> I wasn't sure if that one was or not.
I plan on mandating that no tests should have unexpected failures,
except when they have just broken. That will make it easy for people
to know what's a failure and what's not.
But, for now, you can always run the tests twice. You can also visit:
http://www.codesourcery.com/gcc-snapshots/
for logs of testsuite runs for each of the past few days. That's a
good way to get a benchmark. Here are what look like the new failures
to me:
FAIL: g++.jason/thunk1.C Execution test
FAIL: g++.jason/thunk2.C Execution test
FAIL: g++.jason/thunk3.C Execution test
FAIL: g++.mike/p3708.C Execution test
FAIL: g++.mike/p3708a.C Execution test
FAIL: g++.mike/p3708b.C Execution test
FAIL: g++.mike/p4736b.C Execution test
FAIL: g++.mike/p4736c.C Execution test
FAIL: g++.other/rtti3.C Execution test
FAIL: g++.other/rtti4.C Execution test
FAIL: g++.other/rttid3.C Execution test
(By the way, if other folks would like to put daily snapshots of
binary packages for platforms other that i686-pc-linux-gnu on our
web-site, let us know -- we'd be happy to host them.)
Richard> Unfortunately, I don't even know the C++ language, so I
Richard> can't make the start on this. Can you take a quick look
Richard> and identify the miscompilation for me? I can take it
Richard> from there.
Here's a key hunk. The version at the top is correct:
*** test.s Sun Mar 26 09:50:04 2000
--- test.old.s Sun Mar 26 09:49:54 2000
***************
*** 140,163 ****
.LFE4:
.Lfe4:
.size main,.Lfe4-main
- .section .gnu.linkonce.t.__thunk_4_MixinFunc__8CExampleiG1A,"ax",@progbits
- .align 16
- .weak __thunk_4_MixinFunc__8CExampleiG1A
- .type __thunk_4_MixinFunc__8CExampleiG1A,@function
- __thunk_4_MixinFunc__8CExampleiG1A:
- addl $-4, 8(%esp)
- jmp MixinFunc__8CExampleiG1A
- .Lfe5:
- .size __thunk_4_MixinFunc__8CExampleiG1A,.Lfe5-__thunk_4_MixinFunc__8CExampleiG1A
.weak __vt_8CExample
.section .gnu.linkonce.d.__vt_8CExample,"aw",@progbits
.align 8
.type __vt_8CExample,@object
.size __vt_8CExample,16
__vt_8CExample:
! .long -4
.long __tf8CExample
! .long __thunk_4_MixinFunc__8CExampleiG1A
.zero 4
.comm __ti8CExample,16,4
.section .rodata
--- 140,154 ----
.LFE4:
.Lfe4:
.size main,.Lfe4-main
.weak __vt_8CExample
.section .gnu.linkonce.d.__vt_8CExample,"aw",@progbits
.align 8
.type __vt_8CExample,@object
.size __vt_8CExample,16
__vt_8CExample:
! .long 0
.long __tf8CExample
! .long MixinFunc__8CExampleiG1A
.zero 4
.comm __ti8CExample,16,4
.section .rodata
There are different values in the vtables, indicating that somehow
base classes are ending up at different offsets in their parents. In
particular, it appears that in the second hunk the MMixin class ends
up at the same address as its containing CExample; in the first case,
it ended up four bytes further along.
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com