http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55499



             Bug #: 55499

           Summary: [devirt] trunk fails to eliminate dead functions where

                    all call sites were inlined

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: middle-end

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: m...@use.net





When compiling inline-devirt-1.C, all inlining happens correctly but the

function bodies remain, with or without whole-program, with or without renaming

main to main2 (and compiling as a shared lib):



g++-4.8 -fwhole-program -O3 -funroll-loops inline-devirt-1.C



0000000000400810 <_ZN10CalculableD1Ev>:

  400810:       48 c7 07 d0 09 40 00    mov    QWORD PTR [rdi],0x4009d0

  400817:       c3                      ret    

  400818:       0f 1f 84 00 00 00 00    nop    DWORD PTR [rax+rax*1+0x0]

  40081f:       00 



0000000000400820 <_ZN1X9calculateEv>:

  400820:       b8 01 00 00 00          mov    eax,0x1

  400825:       c3                      ret    

  400826:       66 2e 0f 1f 84 00 00    nop    WORD PTR cs:[rax+rax*1+0x0]

  40082d:       00 00 00 



0000000000400830 <_ZN1Y9calculateEv>:

  400830:       b8 02 00 00 00          mov    eax,0x2

  400835:       c3                      ret    

  400836:       66 2e 0f 1f 84 00 00    nop    WORD PTR cs:[rax+rax*1+0x0]

  40083d:       00 00 00 



0000000000400840 <_ZN1YD1Ev>:

  400840:       48 c7 07 d0 09 40 00    mov    QWORD PTR [rdi],0x4009d0

  400847:       c3                      ret    

  400848:       0f 1f 84 00 00 00 00    nop    DWORD PTR [rax+rax*1+0x0]

  40084f:       00 



0000000000400850 <_ZN1XD1Ev>:

  400850:       48 c7 07 d0 09 40 00    mov    QWORD PTR [rdi],0x4009d0

  400857:       c3                      ret    

  400858:       0f 1f 84 00 00 00 00    nop    DWORD PTR [rax+rax*1+0x0]

  40085f:       00 



0000000000400860 <_ZN10CalculableD0Ev>:

  400860:       48 c7 07 d0 09 40 00    mov    QWORD PTR [rdi],0x4009d0

  400867:       e9 94 fd ff ff          jmp    400600 <_ZdlPv@plt>

  40086c:       0f 1f 40 00             nop    DWORD PTR [rax+0x0]



0000000000400870 <_ZN1YD0Ev>:

  400870:       48 c7 07 d0 09 40 00    mov    QWORD PTR [rdi],0x4009d0

  400877:       e9 84 fd ff ff          jmp    400600 <_ZdlPv@plt>

  40087c:       0f 1f 40 00             nop    DWORD PTR [rax+0x0]



0000000000400880 <_ZN1XD0Ev>:

  400880:       48 c7 07 d0 09 40 00    mov    QWORD PTR [rdi],0x4009d0

  400887:       e9 74 fd ff ff          jmp    400600 <_ZdlPv@plt>

  40088c:       0f 1f 40 00             nop    DWORD PTR [rax+0x0]

Reply via email to