This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/55500] New: [devirt] trunk fails inline-devirt test #7
- From: "matt at use dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 27 Nov 2012 22:39:20 +0000
- Subject: [Bug middle-end/55500] New: [devirt] trunk fails inline-devirt test #7
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55500
Bug #: 55500
Summary: [devirt] trunk fails inline-devirt test #7
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: matt@use.net
Created attachment 28802
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28802
test case that fails in trunk but passed with Maxim's devirt patches. added a
loop to induce 'hotness' of the path versus the original test case.
inline-devirt-7.C, which passed using Maxim's patches from 11/2011, do not pass
on current trunk. Current trunk is missing the ipa-iterations patch, which may
be required for this test case to pass. This test embodies a simple factory
pattern and interface segregation, two C++ best practices. (The weird loop in
main() is to induce "hot" inlining as mentioned in previous bugs.)
00000000004006d0 <main>:
4006d0: 55 push rbp
4006d1: bd 03 00 00 00 mov ebp,0x3
4006d6: 53 push rbx
4006d7: 48 83 ec 08 sub rsp,0x8
4006db: bf 10 00 00 00 mov edi,0x10
4006e0: e8 db ff ff ff call 4006c0 <_Znwm@plt>
4006e5: 48 c7 00 50 0c 40 00 mov QWORD PTR [rax],0x400c50
4006ec: 48 c7 40 08 88 0c 40 mov QWORD PTR [rax+0x8],0x400c88
4006f3: 00
4006f4: 48 89 c7 mov rdi,rax
4006f7: 48 89 c3 mov rbx,rax
4006fa: e8 61 02 00 00 call 400960 <_ZN11LinuxSocket4openEv>