aboutsummaryrefslogtreecommitdiff
path: root/lpcode.c
diff options
context:
space:
mode:
Diffstat (limited to 'lpcode.c')
-rw-r--r--lpcode.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/lpcode.c b/lpcode.c
index 2987cfc..f7246da 100644
--- a/lpcode.c
+++ b/lpcode.c
@@ -725,16 +725,17 @@ static void codelabchoice (CompileState *compst, TTree *p1, TTree *p2, int opt,
725static void coderecovery (CompileState *compst, TTree *p1, TTree *p2, int opt, 725static void coderecovery (CompileState *compst, TTree *p1, TTree *p2, int opt,
726 const Charset *fl, const byte *cs) { 726 const Charset *fl, const byte *cs) {
727 int emptyp2 = (p2->tag == TTrue); 727 int emptyp2 = (p2->tag == TTrue);
728 int pcommit; 728 int pjmp;
729 int test = NOINST; 729 int test = NOINST;
730 int precovery = addoffsetinst(compst, IRecov); 730 int precovery = addoffsetinst(compst, IRecov);
731 addcharset(compst, cs); 731 addcharset(compst, cs);
732 codegen(compst, p1, emptyp2, test, fullset); 732 codegen(compst, p1, emptyp2, test, fullset);
733 pcommit = addoffsetinst(compst, ICommit); 733 pjmp = addoffsetinst(compst, IJmp);
734 jumptohere(compst, precovery); 734 jumptohere(compst, precovery);
735 jumptohere(compst, test); 735 jumptohere(compst, test);
736 codegen(compst, p2, opt, NOINST, fl); 736 codegen(compst, p2, opt, NOINST, fl);
737 jumptohere(compst, pcommit); 737 addinstruction(compst, IRet, 0);
738 jumptohere(compst, pjmp);
738} 739}
739/* labeled failure end */ 740/* labeled failure end */
740 741