From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 54100 invoked by alias); 7 Mar 2017 10:42:43 -0000 Mailing-List: contact libabigail-help@sourceware.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Subscribe: Sender: libabigail-owner@sourceware.org Received: (qmail 48849 invoked by uid 48); 7 Mar 2017 10:42:36 -0000 From: "dodji at redhat dot com" To: libabigail@sourceware.org Subject: [Bug default/21228] New: Cannot clone a function that is a member of a union Date: Sun, 01 Jan 2017 00:00:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: libabigail X-Bugzilla-Component: default X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: dodji at redhat dot com X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: dodji at redhat dot com X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter cc target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2017-q1/txt/msg00046.txt.bz2 https://sourceware.org/bugzilla/show_bug.cgi?id=3D21228 Bug ID: 21228 Summary: Cannot clone a function that is a member of a union Product: libabigail Version: unspecified Status: NEW Severity: normal Priority: P2 Component: default Assignee: dodji at redhat dot com Reporter: dodji at redhat dot com CC: libabigail at sourceware dot org Target Milestone: --- This is a bug that was filled downstream at https://bugzilla.redhat.com/show_bug.cgi?id=3D1429018. Basically, while running abipkgdiff on two tbb packages, the program aborted with the call stack below. The abort is the result of an assertion violati= on raised during the cloning of a member function, while analyzing the debug i= nfo of a tbb library. The assertion is that a member function is necessarily a member of a class_decl. Note that today, that assertion should (indeed) not be true anymore, since we now support union types; and in C++, a union type can have member functions. Note that the assertion violation was raised during the cloning of a member function. I am pasting the interesting call stack below. The binaries (RPMs) necessa= ry to reproduce the issue can be retrieved from the downstream bug. Thread 1 (Thread 0x7f9abcc79700 (LWP 8471)): #0 __GI_raise (sig=3Dsig@entry=3D6) at ../sysdeps/unix/sysv/linux/raise.c:= 58 set =3D {__val =3D {0, 140302568881544, 140302427721456, 1403025864= 91404, 140303624142848, 140302427721456, 140302427721557, 140302427721456, 140302427721456, 140302427721586, 140302427721756, 140302427721456, 140302427721756, 0, 0, 0}} pid =3D tid =3D #1 0x00007f9abdd0251a in __GI_abort () at abort.c:89 save_stage =3D 2 act =3D {__sigaction_handler =3D {sa_handler =3D 0x7f9ab45c5f00, sa= _sigaction =3D 0x7f9ab45c5f00}, sa_mask =3D {__val =3D {140302568881440, 1403025688812= 96, 4, 3025952512, 140302616236032, 140302611742621, 11617, 140302611677440, 0, 140302568881680, 140302586548924, 140302587639856, 140302587625496, 0, 140302587625496, 140302611742621}}, sa_flags =3D -1080422400, sa_restorer = =3D 0x7f9abf557f9d} sigs =3D {__val =3D {32, 0 }} #2 0x00007f9abdcf8da7 in __assert_fail_base (fmt=3D, assertion=3Dassertion@entry=3D0x7f9abf557f9d "scope", file=3Dfile@entry=3D0x7f9abf5470cf "abg-ir.cc", line=3Dline@entry=3D11617, function=3Dfunction@entry=3D0x7f9abf548100 "abigail::ir::function_decl_sptr abigail::ir::function_decl::clone() const") at assert.c:92 str =3D 0x7f9ab45d9030 "abipkgdiff: abg-ir.cc:11617: abigail::ir::function_decl_sptr abigail::ir::function_decl::clone() const: Assertion `scope' failed.\n" total =3D 4096 #3 0x00007f9abdcf8e52 in __GI___assert_fail (assertion=3Dassertion@entry=3D0x7f9abf557f9d "scope", file=3Dfile@entry=3D0x7f9abf5470cf "abg-ir.cc", line=3Dline@entry=3D11617, function=3Dfunction@entry=3D0x7f9abf548100 "abigail::ir::function_decl_sptr abigail::ir::function_decl::clone() const") at assert.c:101 No locals. #4 0x00007f9abf414f58 in abigail::ir::function_decl::clone (this=3D0x7f9ab4537ac0) at abg-ir.cc:11617 m =3D std::tr1::shared_ptr (count 1, weak 0) 0x7f9ab44ca500 scope =3D f =3D std::tr1::shared_ptr (empty) 0x0 __PRETTY_FUNCTION__ =3D "abigail::ir::function_decl_sptr abigail::ir::function_decl::clone() const" #5 0x00007f9abf4f8e32 in abigail::dwarf_reader::build_ir_node_from_die (ctxt=3D..., die=3Ddie@entry=3D0x7f9abcc78770, scope=3D, called_from_public_decl=3Dcalled_from_public_decl@entry=3Dtrue, where_offset=3Dwhere_offset@entry=3D53812) at abg-dwarf-reader.cc:9979 d =3D std::tr1::shared_ptr (count 6, weak 0) 0x7f9ab4537ad0 linkage_name =3D "_ZN3tbb8internal11atomic_implIPNS0_24concurrent_queue_base_v34pageEE9conve= rterIS4_EC2ES4_" spec_linkage_name =3D "_ZN3tbb8internal11atomic_implIPNS0_24concurrent_queue_base_v34pageEE9conve= rterIS4_EC4ES4_" spec_die =3D {addr =3D 0x7f9abbade466, cu =3D 0x7f9ab4265108, abbre= v =3D 0x7f9ab426a498, padding__ =3D 0} fn =3D std::tr1::shared_ptr (count 6, weak 0) 0x7f9ab4537ac0 has_spec =3D abstract_origin_die =3D {addr =3D 0x7f9abbadf039, cu =3D 0x7f9ab426= 5108, abbrev =3D 0x7f9ab426a4b8, padding__ =3D 0} interface_die =3D origin_die =3D interface_scope =3D std::tr1::shared_ptr (count 7, weak 4) 0x7f9ab4= 5c5f00 has_abstract_origin =3D true logical_scope =3D result =3D std::tr1::shared_ptr (empty) 0x0 tag =3D 46 source_of_die =3D abigail::dwarf_reader::PRIMARY_DEBUG_INFO_DIE_SOU= RCE __PRETTY_FUNCTION__ =3D "abigail::ir::type_or_decl_base_sptr abigail::dwarf_reader::build_ir_node_from_die(abigail::dwarf_reader::read_c= ontext&, Dwarf_Die*, abigail::ir::scope_decl*, bool, size_t)" __FUNCTION__ =3D "build_ir_node_from_die" #6 0x00007f9abf4fe282 in abigail::dwarf_reader::build_ir_node_from_die (ctxt=3D..., die=3Ddie@entry=3D0x7f9abcc78770, called_from_public_decl=3Dtr= ue, where_offset=3Dwhere_offset@entry=3D53812) at abg-dwarf-reader.cc:10147 scope =3D std::tr1::shared_ptr (count 7, weak 4) 0x7f9ab45c5f00 #7 0x00007f9abf505692 in abigail::dwarf_reader::build_translation_unit_and_add_to_ir (address_size=3D, die=3D0x7f9abcc78750, ctxt=3D..., this=3D<= optimized out>) at abg-dwarf-reader.cc:7571 path =3D "../../src/tbb/concurrent_queue.cpp" l =3D 4 child =3D {addr =3D 0x7f9abbadf052, cu =3D 0x7f9ab4265108, abbrev = =3D 0x7f9ab426a4d8, padding__ =3D 0} #8 abigail::dwarf_reader::read_debug_info_into_corpus (ctxt=3D...) at abg-dwarf-reader.cc:9464 die_offset =3D unit =3D {addr =3D 0x7f9abbadd340, cu =3D 0x7f9ab4265108, abbrev =3D 0x7f9ab426cc88, padding__ =3D 0} ir_node =3D std::tr1::shared_ptr (count 4, weak 0) 0x7f9ab44780a0 offset =3D next_offset =3D 81603 address_size =3D 64 '@' header_size =3D 11 dwarf_version =3D 4 __PRETTY_FUNCTION__ =3D "abigail::ir::corpus_sptr abigail::dwarf_reader::read_debug_info_into_corpus(abigail::dwarf_reader::r= ead_context&)" #9 0x00007f9abf50700b in abigail::dwarf_reader::read_corpus_from_elf (ctxt=3D..., status=3D@0x7f9abcc78ba4: abigail::dwarf_reader::STATUS_UNKNOW= N) at abg-dwarf-reader.cc:10282 corp =3D std::tr1::shared_ptr (count 85, weak -1) 0x7f9ab4003ad0 #10 0x000055a76bf1f400 in compare (ctxt=3D, diff=3Dstd::tr1::shared_ptr (empty) 0x0, env=3D, opts=3D= ..., priv_types_supprs2=3Dstd::vector of length 0, capacity 0, debug_dir2=3D..., elf2=3D..., priv_types_supprs1=3Dstd::vector of length 0, capacity 0, debug_dir1=3D..., elf1=3D...) at abipkgdiff.cc:1101 c =3D std::tr1::shared_ptr (count 1, weak 0) 0x7f9ab4003d60 di_dir2 =3D 0x55a76d710a20 "/home/jamesjer/.cache/libabigail/abipkgdiff-tmp-dir-jymmY3/debug_package2/= usr/lib/debug/" c1_status =3D abigail::dwarf_reader::STATUS_UNKNOWN corpus1 =3D std::tr1::shared_ptr (empty) 0x0 s =3D (abigail::tools_utils::ABIDIFF_ERROR | abigail::tools_utils::ABIDIFF_USAGE_ERROR | abigail::tools_utils::ABIDIFF_ABI_CHANGE | abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE | unknown: 4294967280) di_dir1 =3D 0x55a76d710980 "/home/jamesjer/.cache/libabigail/abipkgdiff-tmp-dir-jymmY3/debug_package1/= usr/lib/debug/" c2_status =3D abigail::dwarf_reader::STATUS_OK supprs =3D corpus2 =3D std::tr1::shared_ptr (empty) 0x0 #11 pthread_routine_compare (args=3D0x7ffdbb4fe6e0) at abipkgdiff.cc:1231 env =3D std::tr1::shared_ptr (count 1, weak 0) 0x7f9ab4000b80 key =3D "" status =3D abigail::tools_utils::ABIDIFF_OK a =3D std::tr1::shared_ptr (count 1, weak 0) 0x55a76d710ac0 diff =3D std::tr1::shared_ptr (empty) 0x0 ctxt =3D std::tr1::shared_ptr (count 1, weak 0) 0x7f9ab401a070 #12 0x00007f9abe0986ca in start_thread (arg=3D0x7f9abcc79700) at pthread_create.c:333 __res =3D pd =3D 0x7f9abcc79700 now =3D unwind_buf =3D {cancel_jmp_buf =3D {{jmp_buf =3D {140302568888064, -3057515718200945651, 0, 140727746028767, 140302568888768, 140302568888064, 3072858095697105933, 3072855398679548941}, mask_was_saved =3D 0}}, priv =3D= {pad =3D {0x0, 0x0, 0x0, 0x0}, data =3D {prev =3D 0x0, cleanup =3D 0x0, canceltype = =3D 0}}} not_first_call =3D pagesize_m1 =3D sp =3D freesize =3D __PRETTY_FUNCTION__ =3D "start_thread" #13 0x00007f9abddd2f7f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105 --=20 You are receiving this mail because: You are on the CC list for the bug.