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: Your recent change


>>>>> "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

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