diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ea8ef82c38..81a3b9c1de 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-02-01 Shahab Vahedi + + * target-descriptions.c (tdesc_register_in_reggroup_p): Return 0 + when reg->group is empty and reggroup is not. + 2020-01-31 Tom Tromey * ravenscar-thread.c (ravenscar_thread_target::mourn_inferior): diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index 04711ba2fa..06f42a1b95 100644 --- a/gdb/target-descriptions.c +++ b/gdb/target-descriptions.c @@ -977,13 +977,16 @@ tdesc_register_in_reggroup_p (struct gdbarch *gdbarch, int regno, { struct tdesc_reg *reg = tdesc_find_register (gdbarch, regno); - if (reg != NULL && !reg->group.empty () - && (reg->group == reggroup_name (reggroup))) + if (reg != NULL) + { + if (reggroup == all_reggroup) return 1; - if (reg != NULL - && (reggroup == save_reggroup || reggroup == restore_reggroup)) - return reg->save_restore; + else if (reggroup == save_reggroup || reggroup == restore_reggroup) + return reg->save_restore; + else + return (int) (reg->group == reggroup_name (reggroup)); + } return -1; }