mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-03-01 13:26:47 +08:00
Fix crash with -D_GLIBCXX_DEBUG
I noticed a buildbot failure where gdb crashed in info-os.exp, when compiled with -D_GLIBCXX_DEBUG: (gdb) info os procgroups /usr/include/c++/7/bits/stl_algo.h:4834: Error: comparison doesn't meet irreflexive requirements, assert(!(a < a)). Objects involved in the operation: iterator::value_type "< operator type" { type = pid_pgid_entry; } The bug here is that pid_pgid_entry::operator< violates the C++ irreflexivity rule; that is, that an object cannot be less than itself. Tested locally by re-running info-os.exp. gdb/ChangeLog 2018-07-30 Tom Tromey <tom@tromey.com> * nat/linux-osdata.c (pid_pgid_entry::operator<): Fix irreflexivity violation.
This commit is contained in:
parent
dba7455e76
commit
463c08d160
@ -1,3 +1,8 @@
|
||||
2018-07-30 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* nat/linux-osdata.c (pid_pgid_entry::operator<): Fix
|
||||
irreflexivity violation.
|
||||
|
||||
2018-07-30 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* cli/cli-decode.c (lookup_cmd): Remove lint code.
|
||||
|
@ -415,9 +415,11 @@ struct pid_pgid_entry
|
||||
|
||||
/* Process group leaders always come first... */
|
||||
if (this->is_leader ())
|
||||
return true;
|
||||
|
||||
if (other.is_leader ())
|
||||
{
|
||||
if (!other.is_leader ())
|
||||
return true;
|
||||
}
|
||||
else if (other.is_leader ())
|
||||
return false;
|
||||
|
||||
/* ...else sort by PID. */
|
||||
|
Loading…
Reference in New Issue
Block a user