From: Yves Orton Date: Wed, 31 Jan 2007 10:28:34 +0000 (+0100) Subject: regcomp.c: remove some gotos that cause compiler consternation. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=57b84237ab396aa1e1efe3b629c2b636d4869d93;p=p5sagit%2Fp5-mst-13.2.git regcomp.c: remove some gotos that cause compiler consternation. Date: Wed, 31 Jan 2007 10:28:34 +0100 p4raw-id: //depot/perl@30083 --- diff --git a/regcomp.c b/regcomp.c index 18f432b..ec79ced 100644 --- a/regcomp.c +++ b/regcomp.c @@ -5075,8 +5075,10 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth) nextchar(pRExC_state); return ret; } - goto unknown; - case '<': /* (?<...) */ + RExC_parse++; + vFAIL3("Sequence (%.*s...) not recognized", RExC_parse-seqstart, seqstart); + /*NOTREACHED*/ + case '<': /* (?<...) */ if (*RExC_parse == '!') paren = ','; else if (*RExC_parse != '=') @@ -5091,8 +5093,11 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth) SIZE_ONLY ? /* reverse test from the others */ REG_RSN_RETURN_NAME : REG_RSN_RETURN_NULL); - if (RExC_parse == name_start) - goto unknown; + if (RExC_parse == name_start) { + RExC_parse++; + vFAIL3("Sequence (%.*s...) not recognized", RExC_parse-seqstart, seqstart); + /*NOTREACHED*/ + } if (*RExC_parse != paren) vFAIL2("Sequence (?%c... not terminated", paren=='>' ? '<' : paren); @@ -5261,8 +5266,11 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth) /* FALL THROUGH*/ case '?': /* (??...) */ is_logical = 1; - if (*RExC_parse != '{') - goto unknown; + if (*RExC_parse != '{') { + RExC_parse++; + vFAIL3("Sequence (%.*s...) not recognized", RExC_parse-seqstart, seqstart); + /*NOTREACHED*/ + } paren = *RExC_parse++; /* FALL THROUGH */ case '{': /* (?{...}) */ @@ -5508,8 +5516,11 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth) } break; case '-': - if (flagsp == &negflags) - goto unknown; + if (flagsp == &negflags) { + RExC_parse++; + vFAIL3("Sequence (%.*s...) not recognized", RExC_parse-seqstart, seqstart); + /*NOTREACHED*/ + } flagsp = &negflags; wastedflags = 0; /* reset so (?g-c) warns twice */ break; @@ -5529,7 +5540,6 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp,U32 depth) } /*NOTREACHED*/ default: - unknown: RExC_parse++; vFAIL3("Sequence (%.*s...) not recognized", RExC_parse-seqstart, seqstart); /*NOTREACHED*/