]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
[gdb/build] Workaround gcc PR113599
authorTom de Vries <tdevries@suse.de>
Thu, 25 Jan 2024 15:31:47 +0000 (16:31 +0100)
committerTom de Vries <tdevries@suse.de>
Thu, 25 Jan 2024 15:31:47 +0000 (16:31 +0100)
commit2ec7980408fafb172d2ddb716a367ce2111e2e9e
tree548d0b553d27021e9d11fcca40626c8d0d68a2b9
parent7ff4111cdee7eedbe083918f34774e1487ece557
[gdb/build] Workaround gcc PR113599

Since gcc commit d3f48f68227 ("c++: non-dependent .* operand folding
[PR112427]"), with gdb we run into PR gcc/113599 [1], a wrong-code bug, as
reported in PR build/31281.

Work around this by flipping inherit order:
...
-class thread_info : public refcounted_object,
-     public intrusive_list_node<thread_info>
+class thread_info : public intrusive_list_node<thread_info>,
+     public refcounted_object
...

An argument could be made that this isn't necessary, because this occurred in
an unreleased gcc version.

However, I think it could be useful when bisecting gcc for other problems in
building gdb.  Having this workaround means the bisect won't reintroduce the
problem.  Furthermore, the workaround is harmless.

Tested on Fedora rawhide x86_64.

Approved-By: Tom Tromey <tom@tromey.com>
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31281

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113599
gdb/gdbthread.h