Author: pfg
Date: Fri May  9 01:25:25 2014
New Revision: 265727
URL: http://svnweb.freebsd.org/changeset/base/265727

Log:
  MFC   r265202:
  Remove some unreachable breaks in regex.
  
  This is based on a much bigger cleanup done in Illumos.
  
  Reference:
  https://www.illumos.org/issues/2077

Modified:
  stable/9/lib/libc/regex/engine.c
  stable/9/lib/libc/regex/regcomp.c
Directory Properties:
  stable/9/   (props changed)
  stable/9/lib/   (props changed)
  stable/9/lib/libc/   (props changed)

Modified: stable/9/lib/libc/regex/engine.c
==============================================================================
--- stable/9/lib/libc/regex/engine.c    Fri May  9 01:20:39 2014        
(r265726)
+++ stable/9/lib/libc/regex/engine.c    Fri May  9 01:25:25 2014        
(r265727)
@@ -686,19 +686,16 @@ backref(struct match *m,
                while (m->g->strip[ss] != SOP(O_BACK, i))
                        ss++;
                return(backref(m, sp+len, stop, ss+1, stopst, lev, rec));
-               break;
        case OQUEST_:           /* to null or not */
                dp = backref(m, sp, stop, ss+1, stopst, lev, rec);
                if (dp != NULL)
                        return(dp);     /* not */
                return(backref(m, sp, stop, ss+OPND(s)+1, stopst, lev, rec));
-               break;
        case OPLUS_:
                assert(m->lastpos != NULL);
                assert(lev+1 <= m->g->nplus);
                m->lastpos[lev+1] = sp;
                return(backref(m, sp, stop, ss+1, stopst, lev+1, rec));
-               break;
        case O_PLUS:
                if (sp == m->lastpos[lev])      /* last pass matched null */
                        return(backref(m, sp, stop, ss+1, stopst, lev-1, rec));
@@ -709,7 +706,6 @@ backref(struct match *m,
                        return(backref(m, sp, stop, ss+1, stopst, lev-1, rec));
                else
                        return(dp);
-               break;
        case OCH_:              /* find the right one, if any */
                ssub = ss + 1;
                esub = ss + OPND(s) - 1;
@@ -730,6 +726,7 @@ backref(struct match *m,
                        else
                                assert(OP(m->g->strip[esub]) == O_CH);
                }
+               /* NOTREACHED */
                break;
        case OLPAREN:           /* must undo assignment if rest fails */
                i = OPND(s);
@@ -741,7 +738,6 @@ backref(struct match *m,
                        return(dp);
                m->pmatch[i].rm_so = offsave;
                return(NULL);
-               break;
        case ORPAREN:           /* must undo assignment if rest fails */
                i = OPND(s);
                assert(0 < i && i <= m->g->nsub);
@@ -752,7 +748,6 @@ backref(struct match *m,
                        return(dp);
                m->pmatch[i].rm_eo = offsave;
                return(NULL);
-               break;
        default:                /* uh oh */
                assert(nope);
                break;

Modified: stable/9/lib/libc/regex/regcomp.c
==============================================================================
--- stable/9/lib/libc/regex/regcomp.c   Fri May  9 01:20:39 2014        
(r265726)
+++ stable/9/lib/libc/regex/regcomp.c   Fri May  9 01:25:25 2014        
(r265727)
@@ -746,7 +746,6 @@ p_b_term(struct parse *p, cset *cs)
        case '-':
                SETERROR(REG_ERANGE);
                return;                 /* NOTE RETURN */
-               break;
        default:
                c = '\0';
                break;
_______________________________________________
svn-src-stable-9@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "svn-src-stable-9-unsubscr...@freebsd.org"

Reply via email to