This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Two identical "else if" blocks ?


Hello,

While reviewing everyone comments regarding the patch for catching
Ada exceptions, I noticed the following code in remove_breakpoint:

  else if ((b->owner->type == bp_catch_catch || 
            b->owner->type == bp_catch_throw)
           && breakpoint_enabled (b->owner)
           && !b->duplicate)
    {
      val = target_remove_breakpoint (&b->target_info);
      if (val)
        return val;
      b->inserted = (is == mark_inserted);
    }
  else if (ep_is_exception_catchpoint (b->owner)
           && b->inserted       /* sometimes previous insert doesn't happen */
           && breakpoint_enabled (b->owner)
           && !b->duplicate)
    {
      val = target_remove_breakpoint (&b->target_info);
      if (val)
        return val;

      b->inserted = (is == mark_inserted);
    }

Since ep_is_exception_catchpoint is:

  return (ep->type == bp_catch_catch) || (ep->type == bp_catch_throw);

It looks like the two blocks are completely identical, and we should
be able to remove one of them. Should I perhaps test what happens
when I delete, say, the first one?

-- 
Joel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]