Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 May 2014 01:20:40 +0000 (UTC)
From:      "Pedro F. Giffuni" <pfg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r265726 - stable/10/lib/libc/regex
Message-ID:  <201405090120.s491KeML009238@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pfg
Date: Fri May  9 01:20:39 2014
New Revision: 265726
URL: http://svnweb.freebsd.org/changeset/base/265726

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/10/lib/libc/regex/engine.c
  stable/10/lib/libc/regex/regcomp.c

Modified: stable/10/lib/libc/regex/engine.c
==============================================================================
--- stable/10/lib/libc/regex/engine.c	Fri May  9 01:13:14 2014	(r265725)
+++ stable/10/lib/libc/regex/engine.c	Fri May  9 01:20:39 2014	(r265726)
@@ -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/10/lib/libc/regex/regcomp.c
==============================================================================
--- stable/10/lib/libc/regex/regcomp.c	Fri May  9 01:13:14 2014	(r265725)
+++ stable/10/lib/libc/regex/regcomp.c	Fri May  9 01:20:39 2014	(r265726)
@@ -746,7 +746,6 @@ p_b_term(struct parse *p, cset *cs)
 	case '-':
 		SETERROR(REG_ERANGE);
 		return;			/* NOTE RETURN */
-		break;
 	default:
 		c = '\0';
 		break;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405090120.s491KeML009238>