http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49796
Summary: [4.7 Regression] 483.xalancbmk/447.dealII in SPEC CPU 2006 failed to build Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com On Linux/x86-64, revision 176460 gave g++ -O3 -funroll-loops -ffast-math -fwhole-program -flto=jobserver -fuse-linker-plugin -DSPEC_CPU_LP64 .... ... lto1: error: edge points to wrong declaration: <function_decl 0x2b8492a43500 _ZN10xalanc_1_814XalanDOMStringC2EPKtj.constprop.15198 type <method_type 0x2b8492a42540 type <void_type 0x2b84920f6bd0 void VOID align 8 symtab 0 alias set -1 canonical type 0x2b84920f6bd0 pointer_to_this <pointer_type 0x2b84920f6c78>> QI size <integer_cst 0x2b84920f9060 constant 8> unit size <integer_cst 0x2b84920f9080 constant 1> align 8 symtab 0 alias set -1 canonical type 0x2b8492a42540 method basetype <record_type 0x2b8492213d20 XalanDOMString> arg-types <tree_list 0x2b8492a442a8 value <pointer_type 0x2b8492228000> chain <tree_list 0x2b8492a442d0 value <pointer_type 0x2b849222cbd0> chain <tree_list 0x2b84920ea618 value <void_type 0x2b84920f6bd0 void>>>>> public external QI file XalanDOMString.cpp line 68 col 1 align 16 context <record_type 0x2b8492213d20 XalanDOMString> arguments <parm_decl 0x2b849282caa0 this type <pointer_type 0x2b84922280a8 type <record_type 0x2b8492213d20 XalanDOMString> readonly unsigned DI size <integer_cst 0x2b84920e5ec0 constant 64> unit size <integer_cst 0x2b84920e5ee0 constant 8> align 64 symtab 0 alias set -1 canonical type 0x2b8492213540 reference_to_this <reference_type 0x2b84938d2150>> readonly unsigned DI file XalanDOMString.cpp line 70 col 25 size <integer_cst 0x2b84920e5ec0 64> unit size <integer_cst 0x2b84920e5ee0 8> align 64 context <function_decl 0x2b849282bb00 __base_ctor > arg-type <pointer_type 0x2b84922280a8> chain <parm_decl 0x2b849282cb28 theString type <pointer_type 0x2b849222cbd0> used unsigned DI file XalanDOMString.cpp line 69 col 25 size <integer_cst 0x2b84920e5ec0 64> unit size <integer_cst 0x2b84920e5ee0 8> align 64 context <function_decl 0x2b849282bb00 __base_ctor > arg-type <pointer_type 0x2b849222cbd0> chain <parm_decl 0x2b849282cbb0 theCount>>> result <result_decl 0x2b84927fda80 D.5552 type <void_type 0x2b84920f6bd0 void> ignored VOID file XalanDOMString.cpp line 80 col 1 align 8 context <function_decl 0x2b849282bb00 __base_ctor >>> Instead of: <function_decl 0x2b8492e2fb00 __comp_ctor type <method_type 0x2b8492830000 type <void_type 0x2b84920f6bd0 void VOID align 8 symtab 0 alias set -1 canonical type 0x2b84920f6bd0 pointer_to_this <pointer_type 0x2b84920f6c78>> QI size <integer_cst 0x2b84920f9060 constant 8> unit size <integer_cst 0x2b84920f9080 constant 1> align 8 symtab 0 alias set -1 canonical type 0x2b8492830000 method basetype <record_type 0x2b8492213d20 XalanDOMString> arg-types <tree_list 0x2b849282e208 value <pointer_type 0x2b8492228000> chain <tree_list 0x2b849282e230 value <pointer_type 0x2b849222cbd0> chain <tree_list 0x2b849282e258 value <integer_type 0x2b8492213c78 size_type> chain <tree_list 0x2b84920ea618 value <void_type 0x2b84920f6bd0 void>>>>> pointer_to_this <pointer_type 0x2b8493574bd0>> addressable used public external QI file XalanDOMString.cpp line 68 col 1 align 16 context <record_type 0x2b8492213d20 XalanDOMString> arguments <parm_decl 0x2b8492e33088 this type <pointer_type 0x2b84922280a8 type <record_type 0x2b8492213d20 XalanDOMString> readonly unsigned DI size <integer_cst 0x2b84920e5ec0 constant 64> unit size <integer_cst 0x2b84920e5ee0 constant 8> align 64 symtab 0 alias set -1 canonical type 0x2b8492213540 reference_to_this <reference_type 0x2b84938d2150>> readonly used unsigned DI file XalanDOMString.cpp line 70 col 25 size <integer_cst 0x2b84920e5ec0 64> unit size <integer_cst 0x2b84920e5ee0 8> align 64 context <function_decl 0x2b8492e2fb00 __comp_ctor > arg-type <pointer_type 0x2b84922280a8> chain <parm_decl 0x2b8492e33110 theString type <pointer_type 0x2b849222cbd0> used unsigned DI file XalanDOMString.cpp line 69 col 25 size <integer_cst 0x2b84920e5ec0 64> unit size <integer_cst 0x2b84920e5ee0 8> align 64 context <function_decl 0x2b8492e2fb00 __comp_ctor > arg-type <pointer_type 0x2b849222cbd0> chain <parm_decl 0x2b8492e33198 theCount>>> result <result_decl 0x2b8492e30380 D.16270 type <void_type 0x2b84920f6bd0 void> ignored VOID file XalanDOMString.cpp line 80 col 1 align 8 context <function_decl 0x2b8492e2fb00 __comp_ctor >>> problem/1733 @0x2b84923a4a20 (asm: _ZNK10xalanc_1_814XSLTEngineImpl7problemERKNS_14XalanDOMStringENS_15ProblemListener15eClassificationERKN11xercesc_2_57LocatorEPKNS_9XalanNodeE.13971) availability:local analyzed body local prevailing_def_ironly finalized called by: error/1732 (1.00 per call) (can throw external) warn/254 (0.78 per call) (can throw external) calls: __cxa_free_exception/2559 __comp_dtor /2539 __comp_dtor /2539 __cxa_throw/2560 (can throw external) __comp_dtor /2539 __comp_dtor /2539 __comp_ctor /1735 _ZN10xalanc_1_814XalanDOMStringC2EPKtj.constprop.15198/778 _ZN10xalanc_1_814XalanDOMStringC2EPKcj.constprop.15237/2562 __cxa_allocate_exception/2563 References: var:theDummy (addr) var:_ZTIN10xalanc_1_822XSLTProcessorExceptionE (addr) fn:__comp_dtor /257 (addr) Refering this function: has 4 outgoing edges for indirect calls. lto1: internal compiler error: verify_cgraph_node failed Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. make[4]: *** [/tmp/ccQtX8la.ltrans6.ltrans.o] Error 1 lto-wrapper: make returned 2 exit status /usr/local/bin/ld: lto-wrapper failed collect2: error: ld returned 1 exit status specmake[3]: *** [Xalan] Error 1 g++ -O3 -funroll-loops -ffast-math -fwhole-program -flto=jobserver -fuse-linker-plugin -DSPEC_CPU_LP64 ... ... lto1: error: edge points to wrong declaration: <function_decl 0x2abd3c105500 _ZNSt6vectorIdSaIdEEC2EmRKdRKS0_.local.405.constprop.15751 type <method_type 0x2abd3c08f0a8 type <void_type 0x2abd3bf66bd0 void VOID align 8 symtab 0 alias set -1 canonical type 0x2abd3bf66bd0 pointer_to_this <pointer_type 0x2abd3bf66c78>> QI size <integer_cst 0x2abd3bf69060 constant 8> unit size <integer_cst 0x2abd3bf69080 constant 1> align 8 symtab 0 alias set -1 canonical type 0x2abd3c08f0a8 method basetype <record_type 0x2abd3c083b28 vector> arg-types <tree_list 0x2abd3c0900f0 value <pointer_type 0x2abd3c08b0a8> chain <tree_list 0x2abd3c090118 value <reference_type 0x2abd3c08b150> chain <tree_list 0x2abd3c090140 value <reference_type 0x2abd3c08bdc8> chain <tree_list 0x2abd3bf5a618 value <void_type 0x2abd3bf66bd0 void>>>>>> public external autoinline QI defer-output file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 289 col 7 align 16 context <record_type 0x2abd3c083b28 vector> arguments <parm_decl 0x2abd3bf5c908 this type <pointer_type 0x2abd3c08f000 type <record_type 0x2abd3c083b28 vector> readonly unsigned DI size <integer_cst 0x2abd3bf55ec0 constant 64> unit size <integer_cst 0x2abd3bf55ee0 constant 8> align 64 symtab 0 alias set -1 canonical type 0x2abd3c083498> readonly unsigned DI file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 290 col 51 size <integer_cst 0x2abd3bf55ec0 64> unit size <integer_cst 0x2abd3bf55ee0 8> align 64 context <function_decl 0x2abd3c07ff00 __base_ctor > arg-type <pointer_type 0x2abd3c08f000> chain <parm_decl 0x2abd3bf5c990 __n type <integer_type 0x2abd3c07af18 size_type> used unsigned DI file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 289 col 24 size <integer_cst 0x2abd3bf55ec0 64> unit size <integer_cst 0x2abd3bf55ee0 8> align 64 context <function_decl 0x2abd3c07ff00 __base_ctor > arg-type <integer_type 0x2abd3c07af18 size_type> chain <parm_decl 0x2abd3bf5ca18 __value>>> result <result_decl 0x2abd3bf5e380 D.2159 type <void_type 0x2abd3bf66bd0 void> ignored VOID file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 292 col 43 align 8 context <function_decl 0x2abd3c07ff00 __base_ctor >>> Instead of: <function_decl 0x2abd3c105300 __comp_ctor type <method_type 0x2abd3c08b000 type <void_type 0x2abd3bf66bd0 void VOID align 8 symtab 0 alias set -1 canonical type 0x2abd3bf66bd0 pointer_to_this <pointer_type 0x2abd3bf66c78>> QI size <integer_cst 0x2abd3bf69060 constant 8> unit size <integer_cst 0x2abd3bf69080 constant 1> align 8 symtab 0 alias set -1 canonical type 0x2abd3c08b000 method basetype <record_type 0x2abd3c083b28 vector> arg-types <tree_list 0x2abd3c07bbb8 value <pointer_type 0x2abd3c08b0a8> chain <tree_list 0x2abd3c07bbe0 value <integer_type 0x2abd3c07af18 size_type> chain <tree_list 0x2abd3c07bc08 value <reference_type 0x2abd3c08b150> chain <tree_list 0x2abd3c07bfa0 value <reference_type 0x2abd3c08bdc8> chain <tree_list 0x2abd3bf5a618 value <void_type 0x2abd3bf66bd0 void>>>>>> pointer_to_this <pointer_type 0x2abd3c1239d8>> addressable used public external autoinline QI defer-output file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 289 col 7 align 16 context <record_type 0x2abd3c083b28 vector> arguments <parm_decl 0x2abd3c1046e8 this type <pointer_type 0x2abd3c08f000 type <record_type 0x2abd3c083b28 vector> readonly unsigned DI size <integer_cst 0x2abd3bf55ec0 constant 64> unit size <integer_cst 0x2abd3bf55ee0 constant 8> align 64 symtab 0 alias set -1 canonical type 0x2abd3c083498> readonly used unsigned DI file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 290 col 51 size <integer_cst 0x2abd3bf55ec0 64> unit size <integer_cst 0x2abd3bf55ee0 8> align 64 context <function_decl 0x2abd3c105300 __comp_ctor > arg-type <pointer_type 0x2abd3c08f000> chain <parm_decl 0x2abd3c104770 __n type <integer_type 0x2abd3c07af18 size_type> used unsigned DI file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 289 col 24 size <integer_cst 0x2abd3bf55ec0 64> unit size <integer_cst 0x2abd3bf55ee0 8> align 64 context <function_decl 0x2abd3c105300 __comp_ctor > arg-type <integer_type 0x2abd3c07af18 size_type> chain <parm_decl 0x2abd3c1047f8 __value>>> result <result_decl 0x2abd3c106080 D.3535 type <void_type 0x2abd3bf66bd0 void> ignored VOID file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 292 col 43 align 8 context <function_decl 0x2abd3c105300 __comp_ctor >>> lto1: error: edge points to wrong declaration: <function_decl 0x2abd3c105500 _ZNSt6vectorIdSaIdEEC2EmRKdRKS0_.local.405.constprop.15751 type <method_type 0x2abd3c08f0a8 type <void_type 0x2abd3bf66bd0 void VOID align 8 symtab 0 alias set -1 canonical type 0x2abd3bf66bd0 pointer_to_this <pointer_type 0x2abd3bf66c78>> QI size <integer_cst 0x2abd3bf69060 constant 8> unit size <integer_cst 0x2abd3bf69080 constant 1> align 8 symtab 0 alias set -1 canonical type 0x2abd3c08f0a8 method basetype <record_type 0x2abd3c083b28 vector> arg-types <tree_list 0x2abd3c0900f0 value <pointer_type 0x2abd3c08b0a8> chain <tree_list 0x2abd3c090118 value <reference_type 0x2abd3c08b150> chain <tree_list 0x2abd3c090140 value <reference_type 0x2abd3c08bdc8> chain <tree_list 0x2abd3bf5a618 value <void_type 0x2abd3bf66bd0 void>>>>>> public external autoinline QI defer-output file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 289 col 7 align 16 context <record_type 0x2abd3c083b28 vector> arguments <parm_decl 0x2abd3bf5c908 this type <pointer_type 0x2abd3c08f000 type <record_type 0x2abd3c083b28 vector> readonly unsigned DI size <integer_cst 0x2abd3bf55ec0 constant 64> unit size <integer_cst 0x2abd3bf55ee0 constant 8> align 64 symtab 0 alias set -1 canonical type 0x2abd3c083498> readonly unsigned DI file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 290 col 51 size <integer_cst 0x2abd3bf55ec0 64> unit size <integer_cst 0x2abd3bf55ee0 8> align 64 context <function_decl 0x2abd3c07ff00 __base_ctor > arg-type <pointer_type 0x2abd3c08f000> chain <parm_decl 0x2abd3bf5c990 __n type <integer_type 0x2abd3c07af18 size_type> used unsigned DI file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 289 col 24 size <integer_cst 0x2abd3bf55ec0 64> unit size <integer_cst 0x2abd3bf55ee0 8> align 64 context <function_decl 0x2abd3c07ff00 __base_ctor > arg-type <integer_type 0x2abd3c07af18 size_type> chain <parm_decl 0x2abd3bf5ca18 __value>>> result <result_decl 0x2abd3bf5e380 D.2159 type <void_type 0x2abd3bf66bd0 void> ignored VOID file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 292 col 43 align 8 context <function_decl 0x2abd3c07ff00 __base_ctor >>> Instead of: <function_decl 0x2abd3c105300 __comp_ctor type <method_type 0x2abd3c08b000 type <void_type 0x2abd3bf66bd0 void VOID align 8 symtab 0 alias set -1 canonical type 0x2abd3bf66bd0 pointer_to_this <pointer_type 0x2abd3bf66c78>> QI size <integer_cst 0x2abd3bf69060 constant 8> unit size <integer_cst 0x2abd3bf69080 constant 1> align 8 symtab 0 alias set -1 canonical type 0x2abd3c08b000 method basetype <record_type 0x2abd3c083b28 vector> arg-types <tree_list 0x2abd3c07bbb8 value <pointer_type 0x2abd3c08b0a8> chain <tree_list 0x2abd3c07bbe0 value <integer_type 0x2abd3c07af18 size_type> chain <tree_list 0x2abd3c07bc08 value <reference_type 0x2abd3c08b150> chain <tree_list 0x2abd3c07bfa0 value <reference_type 0x2abd3c08bdc8> chain <tree_list 0x2abd3bf5a618 value <void_type 0x2abd3bf66bd0 void>>>>>> pointer_to_this <pointer_type 0x2abd3c1239d8>> addressable used public external autoinline QI defer-output file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 289 col 7 align 16 context <record_type 0x2abd3c083b28 vector> arguments <parm_decl 0x2abd3c1046e8 this type <pointer_type 0x2abd3c08f000 type <record_type 0x2abd3c083b28 vector> readonly unsigned DI size <integer_cst 0x2abd3bf55ec0 constant 64> unit size <integer_cst 0x2abd3bf55ee0 constant 8> align 64 symtab 0 alias set -1 canonical type 0x2abd3c083498> readonly used unsigned DI file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 290 col 51 size <integer_cst 0x2abd3bf55ec0 64> unit size <integer_cst 0x2abd3bf55ee0 8> align 64 context <function_decl 0x2abd3c105300 __comp_ctor > arg-type <pointer_type 0x2abd3c08f000> chain <parm_decl 0x2abd3c104770 __n type <integer_type 0x2abd3c07af18 size_type> used unsigned DI file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 289 col 24 size <integer_cst 0x2abd3bf55ec0 64> unit size <integer_cst 0x2abd3bf55ee0 8> align 64 context <function_decl 0x2abd3c105300 __comp_ctor > arg-type <integer_type 0x2abd3c07af18 size_type> chain <parm_decl 0x2abd3c1047f8 __value>>> result <result_decl 0x2abd3c106080 D.3535 type <void_type 0x2abd3bf66bd0 void> ignored VOID file /export/gnu/import/svn/gcc-test-spec-lto/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../include/c++/4.7.0/bits/stl_vector.h line 292 col 43 align 8 context <function_decl 0x2abd3c105300 __comp_ctor >>> compute_coefficients/0 @0x2abd3c1216c0 (asm: _ZN11Polynomials12Hierarchical20compute_coefficientsEj) availability:local analyzed reachable_from_other_partition body local prevailing_def_ironly finalized called by: compute_coefficients/0 (0.18 per call) (can throw external) compute_coefficients/0 (0.07 per call) (can throw external) calls: operator delete/624 operator delete/624 operator delete/624 operator delete/624 __comp_ctor /625 (0.18 per call) operator new/626 (0.18 per call) (can throw external) compute_coefficients/0 (0.18 per call) (can throw external) _ZNSt6vectorIdSaIdEEC2EmRKdRKS0_.local.405.constprop.15750/2 (inlined) (0.07 per call) operator new/626 (0.07 per call) (can throw external) compute_coefficients/0 (0.07 per call) (can throw external) _ZNSt6vectorIdSaIdEEC2EmRKdRKS0_.local.405.constprop.15751/627 (0.04 per call) operator new/626 (0.04 per call) (can throw external) _ZNSt6vectorIdSaIdEEC2EmRKdRKS0_.local.405.constprop.15751/627 (0.04 per call) operator new/626 (0.04 per call) (can throw external) _ZNSt6vectorIPKS_IdSaIdEESaIS3_EE6resizeEmS3_.local.5880.constprop.15644/12 (inlined) (0.29 per call) (can throw external) References: var:recursive_coefficients (read) var:recursive_coefficients (read) var:recursive_coefficients (addr) var:recursive_coefficients (read) var:recursive_coefficients (read) var:recursive_coefficients (read) var:recursive_coefficients (read) Refering this function: lto1: internal compiler error: verify_cgraph_node failed Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. make[4]: *** [/tmp/ccPXHXxM.ltrans26.ltrans.o] Error 1 lto-wrapper: make returned 2 exit status /usr/local/bin/ld: lto-wrapper failed collect2: error: ld returned 1 exit status specmake[3]: *** [dealII] Error 1 Revision 176370 is OK.