http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46823
Summary: ICE: edge points to wrong declaration Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassig...@gcc.gnu.org ReportedBy: marc.gli...@normalesup.org Target: x86_64-unknown-linux-gnu With the file: http://geometrica.saclay.inria.fr/team/Marc.Glisse/tmp/ouin.cc.xz compiled with: c++ -frounding-math -O3 -c ouin.cc I get the error message below. A smaller version is available at: http://geometrica.saclay.inria.fr/team/Marc.Glisse/tmp/a.cc but delta made a number of illegal transformations. ouin.cc: In function 'CGAL::Polynomial<NT> CGAL::internal::gcd_(const CGAL::Polynomial<NT>&, const CGAL::Polynomial<NT>&, CGAL::Unique_factorization_domain_tag) [with NT = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >]': ouin.cc:66187:57: error: edge points to wrong declaration: <function_decl 0x7fea48919300 _ZN4CGAL10PolynomialINS0_INS0_IN4CORE6BigIntEEEEEEC2ERKS4_.constprop.2093 type <method_type 0x7fea4b2e3d20 type <void_type 0x7fea556a2e70 void type_6 VOID align 8 symtab 0 alias set -1 canonical type 0x7fea556a2e70 pointer_to_this <pointer_type 0x7fea556a2f18>> QI size <integer_cst 0x7fea5568c4d8 constant 8> unit size <integer_cst 0x7fea5568c500 constant 1> align 8 symtab 0 alias set -1 canonical type 0x7fea4b2e3d20 method basetype <record_type 0x7fea4d1487e0 Polynomial> arg-types <tree_list 0x7fea49746c80 value <pointer_type 0x7fea4cc26000> chain <tree_list 0x7fea49746e10 value <reference_type 0x7fea4cc297e0> chain <tree_list 0x7fea556b53c0 value <void_type 0x7fea556a2e70 void>>>> pointer_to_this <pointer_type 0x7fea4a73cc78>> addressable asm_written used static autoinline decl_5 QI file ouin.cc line 63200 col 14 align 16 context <record_type 0x7fea4d1487e0 Polynomial> initial <error_mark 0x7fea55694b40> abstract_origin <function_decl 0x7fea4cc28900 Polynomial> arguments <parm_decl 0x7fea46248a18 this type <pointer_type 0x7fea4cc26000 type <record_type 0x7fea4d1487e0 Polynomial> public unsigned DI size <integer_cst 0x7fea5568c7d0 constant 64> unit size <integer_cst 0x7fea5568c7f8 constant 8> align 64 symtab 0 alias set -1 canonical type 0x7fea4cc26000> readonly used unsigned DI file ouin.cc line 63200 col 37 size <integer_cst 0x7fea5568c7d0 64> unit size <integer_cst 0x7fea5568c7f8 8> align 64 context <function_decl 0x7fea48919300 _ZN4CGAL10PolynomialINS0_INS0_IN4CORE6BigIntEEEEEEC2ERKS4_.constprop.2093> abstract_origin <parm_decl 0x7fea4ce12d48 this> (reg/f:DI 3 bx [orig:64 this ] [64]) arg-type <pointer_type 0x7fea4cc26000> incoming-rtl (reg:DI 5 di [ this ]) chain <parm_decl 0x7fea46248aa0 a0 type <reference_type 0x7fea4cc297e0> readonly used unsigned DI file ouin.cc line 63200 col 35 size <integer_cst 0x7fea5568c7d0 64> unit size <integer_cst 0x7fea5568c7f8 8> align 64 context <function_decl 0x7fea48919300 _ZN4CGAL10PolynomialINS0_INS0_IN4CORE6BigIntEEEEEEC2ERKS4_.constprop.2093> abstract_origin <parm_decl 0x7fea4ce12dd0 a0> (reg/v/f:DI 1 dx [orig:65 a0 ] [65]) arg-type <reference_type 0x7fea4cc297e0> incoming-rtl (reg:DI 4 si [ a0 ])>> result <result_decl 0x7fea4624f180 D.359023 type <void_type 0x7fea556a2e70 void> used ignored VOID file ouin.cc line 63202 col 44 align 8 context <function_decl 0x7fea48919300 _ZN4CGAL10PolynomialINS0_INS0_IN4CORE6BigIntEEEEEEC2ERKS4_.constprop.2093> abstract_origin <result_decl 0x7fea4bff5e00 D.188551>> full-name "CGAL::Polynomial<NT>::Polynomial(const NT&) [with NT_ = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >, CGAL::Polynomial<NT>::NT = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >]" pending-inline-info 0x7fea4c02e310 template-info 0x7fea4cde7f20 (mem:QI (symbol_ref:DI ("_ZN4CGAL10PolynomialINS0_INS0_IN4CORE6BigIntEEEEEEC2ERKS4_.constprop.2093") [flags 0x3] <function_decl 0x7fea48919300 _ZN4CGAL10PolynomialINS0_INS0_IN4CORE6BigIntEEEEEEC2ERKS4_.constprop.2093>) [0 S1 A8])> Instead of: <function_decl 0x7fea4cc58100 __comp_ctor type <method_type 0x7fea4cc29888 type <void_type 0x7fea556a2e70 void type_6 VOID align 8 symtab 0 alias set -1 canonical type 0x7fea556a2e70 pointer_to_this <pointer_type 0x7fea556a2f18>> QI size <integer_cst 0x7fea5568c4d8 constant 8> unit size <integer_cst 0x7fea5568c500 constant 1> align 8 symtab 0 alias set -1 canonical type 0x7fea4cc29930 method basetype <record_type 0x7fea4d1487e0 Polynomial> arg-types <tree_list 0x7fea4cc27d70 value <pointer_type 0x7fea4cc26000> chain <tree_list 0x7fea4cc27cd0 value <reference_type 0x7fea4cc297e0> chain <tree_list 0x7fea556b53c0 value <void_type 0x7fea556a2e70 void>>>> pointer_to_this <pointer_type 0x7fea4edf40a8>> addressable used public static weak autoinline decl_5 QI defer-output file ouin.cc line 63200 col 14 align 16 context <record_type 0x7fea4d1487e0 Polynomial> initial <block 0x7fea4c02c840> abstract_origin <function_decl 0x7fea4cc28900 Polynomial> arguments <parm_decl 0x7fea4cc574c8 this type <pointer_type 0x7fea4cc26000 type <record_type 0x7fea4d1487e0 Polynomial> public unsigned DI size <integer_cst 0x7fea5568c7d0 constant 64> unit size <integer_cst 0x7fea5568c7f8 constant 8> align 64 symtab 0 alias set -1 canonical type 0x7fea4cc26000> readonly used unsigned DI file ouin.cc line 63200 col 37 size <integer_cst 0x7fea5568c7d0 64> unit size <integer_cst 0x7fea5568c7f8 8> align 64 context <function_decl 0x7fea4cc58100 __comp_ctor > abstract_origin <parm_decl 0x7fea4ce12d48 this> arg-type <pointer_type 0x7fea4cc26000> chain <parm_decl 0x7fea4cc57550 a0 type <reference_type 0x7fea4cc297e0> readonly used unsigned DI file ouin.cc line 63200 col 35 size <integer_cst 0x7fea5568c7d0 64> unit size <integer_cst 0x7fea5568c7f8 8> align 64 context <function_decl 0x7fea4cc58100 __comp_ctor > abstract_origin <parm_decl 0x7fea4ce12dd0 a0> arg-type <reference_type 0x7fea4cc297e0>>> result <result_decl 0x7fea4bff5e80 D.188553 type <void_type 0x7fea556a2e70 void> ignored VOID file ouin.cc line 63202 col 44 align 8 context <function_decl 0x7fea4cc58100 __comp_ctor >> full-name "CGAL::Polynomial<NT>::Polynomial(const NT&) [with NT_ = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >, CGAL::Polynomial<NT>::NT = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >]" pending-inline-info 0x7fea4c02e460 template-info 0x7fea4cde7f20 struct-function 0x7fea4c024be0 chain <function_decl 0x7fea4cc28a00 Polynomial>> CGAL::internal::Coercion_traits_for_polynomial_comp_d<CGAL::Polynomial<NT>, B, false>::Type CGAL::internal::Coercion_traits_for_polynomial_comp_d<CGAL::Polynomial<NT>, B, false>::Cast::operator()(const B&) const [with A = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >, B = CORE::BigInt, CGAL::internal::Coercion_traits_for_polynomial_comp_d<CGAL::Polynomial<NT>, B, false>::Type = CGAL::Polynomial<CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> > >, typename CGAL::Coercion_traits<A, B>::Type = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >]/6423(-1) @0x7fea4bd976e0 (asm: _ZNK4CGAL8internal37Coercion_traits_for_polynomial_comp_dINS_10PolynomialINS2_INS2_IN4CORE6BigIntEEEEEEES4_Lb0EE4CastclERKS4_.isra.1183.constprop.1969) (inline copy in CGAL::Polynomial<NT> CGAL::internal::gcd_(const CGAL::Polynomial<NT>&, const CGAL::Polynomial<NT>&, CGAL::Unique_factorization_domain_tag) [with NT = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >]/7969) (clone of CGAL::internal::Coercion_traits_for_polynomial_comp_d<CGAL::Polynomial<NT>, B, false>::Type CGAL::internal::Coercion_traits_for_polynomial_comp_d<CGAL::Polynomial<NT>, B, false>::Cast::operator()(const B&) const [with A = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >, B = CORE::BigInt, CGAL::internal::Coercion_traits_for_polynomial_comp_d<CGAL::Polynomial<NT>, B, false>::Type = CGAL::Polynomial<CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> > >, typename CGAL::Coercion_traits<A, B>::Type = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >]/1325) availability:local analyzed 37 time, 14 benefit (76 after inlining) 15 size, 6 benefit (35 after inlining) 8 bytes stack usage reachable body local finalized inlinable called by: CGAL::Polynomial<NT> CGAL::internal::gcd_(const CGAL::Polynomial<NT>&, const CGAL::Polynomial<NT>&, CGAL::Unique_factorization_domain_tag) [with NT = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >]/7969 (1.00 per call) (inlined) calls: CGAL::Handle_with_policy<T_, HandlePolicy, Allocator_>::~Handle_with_policy() [with T_ = CGAL::internal::Polynomial_rep<CGAL::Polynomial<CORE::BigInt> >, HandlePolicy = CGAL::Handle_policy_no_union, Allocator_ = std::allocator<CGAL::internal::Polynomial_rep<CGAL::Polynomial<CORE::BigInt> > >]/5298 (can throw external) CGAL::Handle_with_policy<T_, HandlePolicy, Allocator_>::~Handle_with_policy() [with T_ = CGAL::internal::Polynomial_rep<CGAL::Polynomial<CORE::BigInt> >, HandlePolicy = CGAL::Handle_policy_no_union, Allocator_ = std::allocator<CGAL::internal::Polynomial_rep<CGAL::Polynomial<CORE::BigInt> > >]/5298 (1.00 per call) (can throw external) CGAL::Polynomial<NT>::Polynomial(const NT&) [with NT_ = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >, CGAL::Polynomial<NT>::NT = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >]/4256 (1.00 per call) (can throw external) CGAL::internal::Coercion_traits_for_polynomial_comp_d<CGAL::Polynomial<NT>, B, false>::Type CGAL::internal::Coercion_traits_for_polynomial_comp_d<CGAL::Polynomial<NT>, B, false>::Cast::operator()(const B&) const [with A = CGAL::Polynomial<CORE::BigInt>, B = CORE::BigInt, CGAL::internal::Coercion_traits_for_polynomial_comp_d<CGAL::Polynomial<NT>, B, false>::Type = CGAL::Polynomial<CGAL::Polynomial<CORE::BigInt> >, typename CGAL::Coercion_traits<A, B>::Type = CGAL::Polynomial<CORE::BigInt>]/10353 (inlined) (1.00 per call) (can throw external) References: Refering this function: ouin.cc:66187:57: internal compiler error: verify_cgraph_node failed