public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
From: "gprocida at google dot com" <sourceware-bugzilla@sourceware.org>
To: libabigail@sourceware.org
Subject: [Bug default/28013] abidiff assertion failure
Date: Wed, 14 Jul 2021 08:52:13 +0000	[thread overview]
Message-ID: <bug-28013-9487-3tvyMNyo6M@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-28013-9487@http.sourceware.org/bugzilla/>

https://sourceware.org/bugzilla/show_bug.cgi?id=28013

--- Comment #2 from gprocida at google dot com ---
Looks like it might be a canonicalisation issue with variadic function
parameters.

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff798d537 in __GI_abort () at abort.c:79
#2  0x00007ffff798d40f in __assert_fail_base (fmt=0x7ffff7af6128 "%s%s%s:%u:
%s%sAssertion `%s' failed.\n%n", assertion=0x55555575e725 "__abg_cond__",
file=0x55555575e711 "../../src/abg-ir.cc", line=24781, function=<optimized
out>) at assert.c:92
#3  0x00007ffff799c662 in __GI___assert_fail
(assertion=assertion@entry=0x55555575e725 "__abg_cond__",
file=file@entry=0x55555575e711 "../../src/abg-ir.cc", line=line@entry=24781, 
    function=function@entry=0x55555575f0e0 "size_t
abigail::ir::hash_as_canonical_type_or_constant(const
abigail::ir::type_base*)") at assert.c:101
#4  0x0000555555587888 in abigail::ir::hash_as_canonical_type_or_constant
(t=0x5555558358e0) at ../../src/abg-ir.cc:24781
#5  0x000055555558c783 in abigail::ir::hash_type (t=<optimized out>) at
../../src/abg-ir.cc:24728
#6  0x000055555559dd01 in abigail::ir::hash_type_or_decl (tod=0x5555558358b8)
at ../../src/abg-ir.cc:24655
#7  0x000055555559e22b in abigail::ir::hash_type_or_decl
(tod=std::shared_ptr<class abigail::ir::type_or_decl_base> (use count 13, weak
count 1) = {...}) at /usr/include/c++/10/bits/shared_ptr_base.h:1324
#8  0x000055555563f7f0 in abigail::comparison::types_or_decls_hash::operator()
(d={...}, this=0x55555581f838) at ../../src/abg-comparison-priv.h:61
#9 
std::__detail::_Hash_code_base<std::pair<std::shared_ptr<abigail::ir::type_or_decl_base>
const, std::shared_ptr<abigail::ir::type_or_decl_base> const>,
std::pair<std::pair<std::shared_ptr<abigail::ir::type_or_decl_base> const,
std::shared_ptr<abigail::ir::type_or_decl_base> con
st> const, std::shared_ptr<abigail::comparison::diff> >,
std::__detail::_Select1st, abigail::comparison::types_or_decls_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
true>::_M_hash_code (__k={...}, this=0x55555581f838)
    at /usr/include/c++/10/bits/hashtable_policy.h:1379
#10 std::_Hashtable<std::pair<std::shared_ptr<abigail::ir::type_or_decl_base>
const, std::shared_ptr<abigail::ir::type_or_decl_base> const>,
std::pair<std::pair<std::shared_ptr<abigail::ir::type_or_decl_base> const,
std::shared_ptr<abigail::ir::type_or_decl_base> const> const, std:
:shared_ptr<abigail::comparison::diff> >,
std::allocator<std::pair<std::pair<std::shared_ptr<abigail::ir::type_or_decl_base>
const, std::shared_ptr<abigail::ir::type_or_decl_base> const> const,
std::shared_ptr<abigail::comparison::diff> > >, std::__detail::_Select1st,
abigail::comp
arison::types_or_decls_equal, abigail::comparison::types_or_decls_hash,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true,
false, true> >::find (this=0x55555581f838, __k={...})
    at /usr/include/c++/10/bits/hashtable.h:1452
#11 0x0000555555613829 in
std::unordered_map<std::pair<std::shared_ptr<abigail::ir::type_or_decl_base>
const, std::shared_ptr<abigail::ir::type_or_decl_base> const>,
std::shared_ptr<abigail::comparison::diff>,
abigail::comparison::types_or_decls_hash, abigail::comparison::types_or_
decls_equal,
std::allocator<std::pair<std::pair<std::shared_ptr<abigail::ir::type_or_decl_base>
const, std::shared_ptr<abigail::ir::type_or_decl_base> const> const,
std::shared_ptr<abigail::comparison::diff> > > >::find (__x={...},
this=<optimized out>)
    at /usr/include/c++/10/bits/unordered_map.h:919
#12 abigail::comparison::diff_context::has_diff_for (this=<optimized out>,
first=std::shared_ptr<class abigail::ir::type_or_decl_base> (use count 17, weak
count 8) = {...}, second=std::shared_ptr<class abigail::ir::type_or_decl_base>
(use count 13, weak count 1) = {...})
    at ../../src/abg-comparison.cc:993
#13 0x0000555555613cf9 in
abigail::comparison::diff_context::get_canonical_diff_for
(this=this@entry=0x5555558037f0, first=std::shared_ptr<class
abigail::ir::type_or_decl_base> (use count 17, weak count 8) = {...}, 
    second=std::shared_ptr<class abigail::ir::type_or_decl_base> (use count 13,
weak count 1) = {...}) at /usr/include/c++/10/ext/atomicity.h:100
#14 0x000055555561a992 in
abigail::comparison::diff_context::set_or_get_canonical_diff_for
(this=this@entry=0x5555558037f0, first=std::shared_ptr<class
abigail::ir::type_or_decl_base> (use count 17, weak count 8) = {...}, 
    second=std::shared_ptr<class abigail::ir::type_or_decl_base> (use count 13,
weak count 1) = {...}, canonical_diff=std::shared_ptr<class
abigail::comparison::diff> (use count 3, weak count 0) = {...}) at
/usr/include/c++/10/ext/atomicity.h:100
#15 0x000055555561abd8 in
abigail::comparison::diff_context::initialize_canonical_diff
(this=0x5555558037f0, diff=std::shared_ptr<class abigail::comparison::diff>
(use count 3, weak count 0) = {...}) at
/usr/include/c++/10/bits/shared_ptr_base.h:1324
#16 0x000055555561b557 in abigail::comparison::compute_diff
(first=std::shared_ptr<class abigail::ir::type_decl> (use count 17, weak count
8) = {...}, second=std::shared_ptr<class abigail::ir::type_decl> (use count 13,
weak count 1) = {...}, 
    ctxt=std::shared_ptr<class abigail::comparison::diff_context> (use count
10, weak count 5) = {...}) at /usr/include/c++/10/ext/atomicity.h:100
#17 0x000055555565ae29 in
abigail::comparison::try_to_diff<abigail::ir::type_decl>
(first=std::shared_ptr<class abigail::ir::type_or_decl_base> (use count 17,
weak count 8) = {...}, second=std::shared_ptr<class
abigail::ir::type_or_decl_base> (use count 13, weak count 1) = {...}, 
    ctxt=std::shared_ptr<class abigail::comparison::diff_context> (use count
10, weak count 5) = {...}) at /usr/include/c++/10/ext/atomicity.h:100
#18 0x0000555555626b44 in abigail::comparison::compute_diff_for_types
(first=std::shared_ptr<class abigail::ir::type_or_decl_base> (use count 17,
weak count 8) = {...}, second=std::shared_ptr<class
abigail::ir::type_or_decl_base> (use count 13, weak count 1) = {...}, 
    ctxt=std::shared_ptr<class abigail::comparison::diff_context> (use count
10, weak count 5) = {...}) at /usr/include/c++/10/bits/shared_ptr_base.h:736
#19 0x000055555562e9ad in abigail::comparison::compute_diff
(first=std::shared_ptr<class abigail::ir::type_base> (use count 17, weak count
8) = {...}, second=std::shared_ptr<class abigail::ir::type_base> (use count 13,
weak count 1) = {...}, 
    ctxt=std::shared_ptr<class abigail::comparison::diff_context> (use count
10, weak count 5) = {...}) at /usr/include/c++/10/ext/atomicity.h:100
#20 0x000055555562f26a in abigail::comparison::fn_parm_diff::fn_parm_diff
(this=0x55555582a0c0, first=std::shared_ptr<class
abigail::ir::function_decl::parameter> (use count 6, weak count 0) = {...}, 
    second=std::shared_ptr<class abigail::ir::function_decl::parameter> (use
count 5, weak count 0) = {...}, ctxt=std::shared_ptr<class
abigail::comparison::diff_context> (use count 10, weak count 5) = {...}) at
/usr/include/c++/10/bits/shared_ptr_base.h:1324
#21 0x000055555562f51d in abigail::comparison::compute_diff
(first=std::shared_ptr<class abigail::ir::function_decl::parameter> (use count
6, weak count 0) = {...}, second=std::shared_ptr<class
abigail::ir::function_decl::parameter> (use count 5, weak count 0) = {...}, 
    ctxt=std::shared_ptr<class abigail::comparison::diff_context> (use count
10, weak count 5) = {...}) at /usr/include/c++/10/ext/atomicity.h:97
#22 0x000055555562fe4e in
abigail::comparison::function_type_diff::ensure_lookup_tables_populated
(this=this@entry=0x55555581f9a0) at /usr/include/c++/10/ext/atomicity.h:100
#23 0x0000555555622928 in abigail::comparison::compute_diff
(first=std::shared_ptr<class abigail::ir::function_type> (use count 4, weak
count 3) = {...}, second=std::shared_ptr<class abigail::ir::function_type> (use
count 4, weak count 3) = {...}, 
    ctxt=std::shared_ptr<class abigail::comparison::diff_context> (use count
10, weak count 5) = {...}) at /usr/include/c++/10/bits/shared_ptr_base.h:1324
#24 0x0000555555622ae2 in abigail::comparison::compute_diff
(first=std::shared_ptr<class abigail::ir::function_decl> (use count 2, weak
count 0) = {...}, second=std::shared_ptr<class abigail::ir::function_decl> (use
count 2, weak count 0) = {...}, 
    ctxt=std::shared_ptr<class abigail::comparison::diff_context> (use count
10, weak count 5) = {...}) at /usr/include/c++/10/bits/shared_ptr_base.h:1324
#25 0x000055555563321f in
abigail::comparison::corpus_diff::priv::ensure_lookup_tables_populated
(this=0x55555582c470) at /usr/include/c++/10/ext/atomicity.h:100
#26 0x00005555556356c4 in abigail::comparison::compute_diff
(f=std::shared_ptr<class abigail::ir::corpus> (use count 3, weak count 0) =
{...}, s=..., ctxt=...) at /usr/include/c++/10/bits/shared_ptr_base.h:1324
#27 0x000055555557df82 in main (argc=<optimized out>, argv=0x7fffffffd7a8) at
/usr/include/c++/10/bits/shared_ptr_base.h:736


I'm going to leave this one to Dodji.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

  parent reply	other threads:[~2021-07-14  8:52 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-25 23:20 [Bug default/28013] New: " gprocida at google dot com
2021-06-26  5:46 ` [Bug default/28013] " gprocida at google dot com
2021-07-14  8:52 ` gprocida at google dot com [this message]
2021-08-12 22:14 ` gprocida at google dot com
2022-01-14 16:10 ` gprocida at google dot com
2022-03-07  9:42 ` dodji at redhat dot com
2022-03-07 11:07 ` dodji at redhat dot com

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-28013-9487-3tvyMNyo6M@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=libabigail@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).