------- Comment #3 from hjl dot tools at gmail dot com 2010-05-29 18:35 ------- Created an attachment (id=20774) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20774&action=view) A reduced testcase
[...@gnu-32 delta]$ /export/gnu/import/rrs/159912/usr/bin/gcc -S -O3 pr44295.ii pr44295.ii: In member function \u2018xercesc_2_5::DOMNodeList* xercesc_2_5::DOMDocumentImpl::getElementsByTagName(const XMLCh*) const\u2019: pr44295.ii:157:68: error: edge points to wrong declaration: <function_decl 0x7f3c21ea3600 _ZN11xercesc_2_519DOMDeepNodeListPoolINS_19DOMDeepNodeListImplEEC2Embm.clone.2 type <method_type 0x7f3c220d8000 type <void_type 0x7f3c2210de70 void type_6 VOID align 8 symtab 0 alias set -1 canonical type 0x7f3c2210de70 pointer_to_this <pointer_type 0x7f3c2210df18>> QI size <integer_cst 0x7f3c220f8758 constant 8> unit size <integer_cst 0x7f3c220f8780 constant 1> align 8 symtab 0 alias set -1 canonical type 0x7f3c220879d8 method basetype <record_type 0x7f3c22082a80 DOMDeepNodeListPool> arg-types <tree_list 0x7f3c21e9f3e8 value <pointer_type 0x7f3c22082b28> chain <tree_list 0x7f3c2211d5f0 value <void_type 0x7f3c2210de70 void>>> pointer_to_this <pointer_type 0x7f3c2208a5e8>> asm_written used static decl_5 QI file pr44295.ii line 126 col 25 align 16 context <record_type 0x7f3c22082a80 DOMDeepNodeListPool> initial <error_mark 0x7f3c22100ca8> abstract_origin <function_decl 0x7f3c2207b800 DOMDeepNodeListPool> arguments <parm_decl 0x7f3c220b3a18 this type <pointer_type 0x7f3c22082b28 type <record_type 0x7f3c22082a80 DOMDeepNodeListPool> public unsigned DI size <integer_cst 0x7f3c220f8a50 constant 64> unit size <integer_cst 0x7f3c220f8a78 constant 8> align 64 symtab 0 alias set 16 canonical type 0x7f3c22082b28 pointer_to_this <pointer_type 0x7f3c21ecac78>> readonly used unsigned DI file pr44295.ii line 126 col 239 size <integer_cst 0x7f3c220f8a50 64> unit size <integer_cst 0x7f3c220f8a78 8> align 64 context <function_decl 0x7f3c21ea3600 _ZN11xercesc_2_519DOMDeepNodeListPoolINS_19DOMDeepNodeListImplEEC2Embm.clone.2> abstract_origin <parm_decl 0x7f3c22088220 this> (reg/f:DI 3 bx [orig:70 this ] [70]) arg-type <pointer_type 0x7f3c22082b28> incoming-rtl (reg:DI 5 di [ this ])> result <result_decl 0x7f3c220d3e80 D.2898 type <void_type 0x7f3c2210de70 void> used ignored VOID file pr44295.ii line 130 col 3 align 8 context <function_decl 0x7f3c21ea3600 _ZN11xercesc_2_519DOMDeepNodeListPoolINS_19DOMDeepNodeListImplEEC2Embm.clone.2> abstract_origin <result_decl 0x7f3c22080e80 D.2669>> full-name "xercesc_2_5::DOMDeepNodeListPool<TVal>::DOMDeepNodeListPool(XMLSize_t, bool, XMLSize_t = 128) [with TVal = xercesc_2_5::DOMDeepNodeListImpl, XMLSize_t = long unsigned int]" pending-inline-info 0x7f3c220a1310 template-info 0x7f3c220764a0 (mem:QI (symbol_ref:DI ("_ZN11xercesc_2_519DOMDeepNodeListPoolINS_19DOMDeepNodeListImplEEC2Embm.clone.2") [flags 0x3] <function_decl 0x7f3c21ea3600 _ZN11xercesc_2_519DOMDeepNodeListPoolINS_19DOMDeepNodeListImplEEC2Embm.clone.2>) [0 S1 A8])> Instead of: <function_decl 0x7f3c2207b700 __comp_ctor type <method_type 0x7f3c22087930 type <void_type 0x7f3c2210de70 void type_6 VOID align 8 symtab 0 alias set -1 canonical type 0x7f3c2210de70 pointer_to_this <pointer_type 0x7f3c2210df18>> QI size <integer_cst 0x7f3c220f8758 constant 8> unit size <integer_cst 0x7f3c220f8780 constant 1> align 8 symtab 0 alias set -1 canonical type 0x7f3c220879d8 method basetype <record_type 0x7f3c22082a80 DOMDeepNodeListPool> arg-types <tree_list 0x7f3c22084870 value <pointer_type 0x7f3c22082b28> chain <tree_list 0x7f3c220847d0 value <integer_type 0x7f3c2210d690 long unsigned int> chain <tree_list 0x7f3c220847a8 value <boolean_type 0x7f3c2210d9d8 bool> chain <tree_list 0x7f3c22084780 purpose <integer_cst 0x7f3c22031848 constant 128> value <integer_type 0x7f3c2210d690 long unsigned int> chain <tree_list 0x7f3c2211d5f0 value <void_type 0x7f3c2210de70 void>>>>>> pointer_to_this <pointer_type 0x7f3c2208a5e8>> addressable used public static weak decl_5 QI defer-output file pr44295.ii line 126 col 25 align 16 context <record_type 0x7f3c22082a80 DOMDeepNodeListPool> initial <block 0x7f3c220a2580> abstract_origin <function_decl 0x7f3c2207b800 DOMDeepNodeListPool> arguments <parm_decl 0x7f3c22088908 this type <pointer_type 0x7f3c22082b28 type <record_type 0x7f3c22082a80 DOMDeepNodeListPool> public unsigned DI size <integer_cst 0x7f3c220f8a50 constant 64> unit size <integer_cst 0x7f3c220f8a78 constant 8> align 64 symtab 0 alias set 16 canonical type 0x7f3c22082b28 pointer_to_this <pointer_type 0x7f3c21ecac78>> readonly used unsigned DI file pr44295.ii line 126 col 239 size <integer_cst 0x7f3c220f8a50 64> unit size <integer_cst 0x7f3c220f8a78 8> align 64 context <function_decl 0x7f3c2207b700 __comp_ctor > abstract_origin <parm_decl 0x7f3c22088220 this> arg-type <pointer_type 0x7f3c22082b28> chain <parm_decl 0x7f3c22088990 modulus type <integer_type 0x7f3c220455e8 XMLSize_t> used unsigned DI file pr44295.ii line 126 col 89 size <integer_cst 0x7f3c220f8a50 64> unit size <integer_cst 0x7f3c220f8a78 8> align 64 context <function_decl 0x7f3c2207b700 __comp_ctor > abstract_origin <parm_decl 0x7f3c220882a8 modulus> arg-type <integer_type 0x7f3c220455e8 XMLSize_t> chain <parm_decl 0x7f3c22088a18 adoptElems>>> result <result_decl 0x7f3c22080f00 D.2674 type <void_type 0x7f3c2210de70 void> ignored VOID file pr44295.ii line 130 col 3 align 8 context <function_decl 0x7f3c2207b700 __comp_ctor >> full-name "xercesc_2_5::DOMDeepNodeListPool<TVal>::DOMDeepNodeListPool(XMLSize_t, bool, XMLSize_t = 128) [with TVal = xercesc_2_5::DOMDeepNodeListImpl, XMLSize_t = long unsigned int]" pending-inline-info 0x7f3c220a13f0 template-info 0x7f3c220764a0 struct-function 0x7f3c22092b40 chain <function_decl 0x7f3c2207b900 getByKey>> xercesc_2_5::DOMNodeList* xercesc_2_5::DOMDocumentImpl::getDeepNodeList(const xercesc_2_5::DOMNode*, const XMLCh*)/24(-1) @0x7f3c220942b0 (asm: _ZN11xercesc_2_515DOMDocumentImpl15getDeepNodeListEPKNS_7DOMNodeEPKt) (inline copy in xercesc_2_5::DOMNodeList* xercesc_2_5::DOMDocumentImpl::getElementsByTagName(const XMLCh*) const/17) availability:local analyzed 22 time, 16 benefit (23 after inlining) 20 size, 8 benefit (21 after inlining) 8 bytes after inlining reachable body local finalized inlinable called by: xercesc_2_5::DOMNodeList* xercesc_2_5::DOMDocumentImpl::getElementsByTagName(const XMLCh*) const/17 (1.00 per call) (inlined) (can throw external) calls: void* operator new(size_t, xercesc_2_5::DOMDocument*)/58 (0.10 per call) (can throw external) xercesc_2_5::DOMDeepNodeListPool<TVal>::DOMDeepNodeListPool(XMLSize_t, bool, XMLSize_t) [with TVal = xercesc_2_5::DOMDeepNodeListImpl, XMLSize_t = long unsigned int]/16 (0.10 per call) (can throw external) TVal* xercesc_2_5::DOMDeepNodeListPool<TVal>::getByKey(const void*, const XMLCh*, const XMLCh*) [with TVal = xercesc_2_5::DOMDeepNodeListImpl, XMLCh = short unsigned int]/25 (inlined) (1.00 per call) (can throw external) References: Refering this function: pr44295.ii:157:68: 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. [...@gnu-32 delta]$ -- hjl dot tools at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #20764|0 |1 is obsolete| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44295