http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55498
Bug #: 55498
Summary: [devirt] trunk fails inline-devirt test #6
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: [email protected]
ReportedBy: [email protected]
Created attachment 28799
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28799
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.
With current trunk, inline-devirt-6.C (attached) fails to fully inline the
one() and two() indirect functions returned by the strategy functions. This did
work with Maxim's patches from November/2011.
0000000000400480 <main>:
400480: 41 55 push r13
400482: 41 54 push r12
400484: 55 push rbp
400485: 53 push rbx
400486: 48 83 ec 08 sub rsp,0x8
40048a: e8 e1 01 00 00 call 400670 <_Z3onev>
40048f: 0f b6 e8 movzx ebp,al
400492: 44 8d 6d 01 lea r13d,[rbp+0x1]
400496: e8 f5 01 00 00 call 400690 <_Z3twov>
40049b: 89 ee mov esi,ebp
40049d: 0f b6 d8 movzx ebx,al
4004a0: bf 60 07 40 00 mov edi,0x400760
4004a5: 31 c0 xor eax,eax
4004a7: 44 8d 63 01 lea r12d,[rbx+0x1]
4004ab: e8 b0 ff ff ff call 400460 <printf@plt>
4004b0: 44 89 ee mov esi,r13d
4004b3: bf 5c 07 40 00 mov edi,0x40075c
4004b8: 31 c0 xor eax,eax
4004ba: e8 a1 ff ff ff call 400460 <printf@plt>