aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/regexp/onepass.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/regexp/onepass.go')
-rw-r--r--libgo/go/regexp/onepass.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/libgo/go/regexp/onepass.go b/libgo/go/regexp/onepass.go
index 2f3ce6f..bc47f4c 100644
--- a/libgo/go/regexp/onepass.go
+++ b/libgo/go/regexp/onepass.go
@@ -9,6 +9,7 @@ import (
"sort"
"strings"
"unicode"
+ "unicode/utf8"
)
// "One-pass" regexp execution.
@@ -55,7 +56,7 @@ func onePassPrefix(p *syntax.Prog) (prefix string, complete bool, pc uint32) {
// Have prefix; gather characters.
var buf strings.Builder
- for iop(i) == syntax.InstRune && len(i.Rune) == 1 && syntax.Flags(i.Arg)&syntax.FoldCase == 0 {
+ for iop(i) == syntax.InstRune && len(i.Rune) == 1 && syntax.Flags(i.Arg)&syntax.FoldCase == 0 && i.Rune[0] != utf8.RuneError {
buf.WriteRune(i.Rune[0])
pc, i = i.Out, &p.Inst[i.Out]
}