public inbox for gdb-prs@sourceware.org help / color / mirror / Atom feed
From: "simon.marchi at polymtl dot ca" <sourceware-bugzilla@sourceware.org> To: gdb-prs@sourceware.org Subject: [Bug gdb/31281] [gdb] intrusive_list.h:329: internal-error: push_back: Assertion elem_node->prev == INTRUSIVE_LIST_UNLINKED_VALUE failed. Date: Thu, 25 Jan 2024 03:51:12 +0000 [thread overview] Message-ID: <bug-31281-4717-aprQIf5ar5@http.sourceware.org/bugzilla/> (raw) In-Reply-To: <bug-31281-4717@http.sourceware.org/bugzilla/> https://sourceware.org/bugzilla/show_bug.cgi?id=31281 Simon Marchi <simon.marchi at polymtl dot ca> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |simon.marchi at polymtl dot ca --- Comment #12 from Simon Marchi <simon.marchi at polymtl dot ca> --- I made what I think is a fairly minimal reproducer: https://godbolt.org/z/rbevnhG1f node_ptr_1 is the node field address computed using the pointer to member machinery. node_ptr_2 is also the node field address, but computed directly by taking its address. We would expect them to be the same, but they're not with gcc 14 / trunk. They are with other compilers. Does this look sufficient to file a gcc bug? Here's the code in case godbolt is down. --- #include <cassert> #include <iostream> struct intrusive_list_node { void *next; }; struct dummy { void *base; }; struct thread_info : public dummy, public intrusive_list_node { intrusive_list_node node; }; template <intrusive_list_node thread_info::*MemberNode> struct intrusive_member_node { static intrusive_list_node *as_node(thread_info *elem) { return &(elem->*MemberNode); } }; int main() { for (int i = 0; i < 100000; ++i) { thread_info *tp = new thread_info; auto node_ptr_1 = intrusive_member_node<&thread_info::node>::as_node(tp); auto node_ptr_2 = &tp->node; std::cout << "With tp == " << tp << ", does " << node_ptr_1 << " == " << node_ptr_2 << " -> " << (node_ptr_1 == node_ptr_2) << std::endl; assert(node_ptr_1 == node_ptr_2); } } -- You are receiving this mail because: You are on the CC list for the bug.
next prev parent reply other threads:[~2024-01-25 3:51 UTC|newest] Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-01-23 17:59 [Bug gdb/31281] New: [gdb] intrusive_list.h:329: internal-error: push_back: Assertion elem_node->prev == INTRUSIVE_LIST_UNLIKED_VALUE failed blarsen at redhat dot com 2024-01-24 15:00 ` [Bug gdb/31281] " sam at gentoo dot org 2024-01-24 15:00 ` sam at gentoo dot org 2024-01-24 15:05 ` blarsen at redhat dot com 2024-01-24 16:17 ` tromey at sourceware dot org 2024-01-24 16:37 ` ssbssa at sourceware dot org 2024-01-24 16:38 ` [Bug gdb/31281] [gdb] intrusive_list.h:329: internal-error: push_back: Assertion elem_node->prev == INTRUSIVE_LIST_UNLINKED_VALUE failed vries at gcc dot gnu.org 2024-01-24 17:06 ` vries at gcc dot gnu.org 2024-01-24 17:18 ` simark at simark dot ca 2024-01-24 18:11 ` blarsen at redhat dot com 2024-01-24 19:23 ` simark at simark dot ca 2024-01-24 19:24 ` vries at gcc dot gnu.org 2024-01-24 19:41 ` vries at gcc dot gnu.org 2024-01-24 21:02 ` simark at simark dot ca 2024-01-24 22:01 ` vries at gcc dot gnu.org 2024-01-24 22:39 ` vries at gcc dot gnu.org 2024-01-25 3:51 ` simon.marchi at polymtl dot ca [this message] 2024-01-25 8:45 ` vries at gcc dot gnu.org 2024-01-25 12:38 ` simon.marchi at polymtl dot ca 2024-01-25 14:04 ` [Bug build/31281] " vries at gcc dot gnu.org 2024-01-25 14:21 ` vries at gcc dot gnu.org 2024-01-25 15:30 ` cvs-commit at gcc dot gnu.org 2024-01-25 15:31 ` vries at gcc dot gnu.org
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-31281-4717-aprQIf5ar5@http.sourceware.org/bugzilla/ \ --to=sourceware-bugzilla@sourceware.org \ --cc=gdb-prs@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: linkBe 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).