You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 7369 Reporter:@johnwhitington Assigned to:@damiendoligez Status: resolved (set by @xavierleroy on 2016-12-04T15:34:48Z) Resolution: fixed Priority: normal Severity: major Version: 4.03.0 Target version: 4.05.0 +dev/beta1/beta2/beta3/rc1 Fixed in version: 4.05.0 +dev/beta1/beta2/beta3/rc1 Category: otherlibs Monitored by:@gasche
Bug description
#load "str.cma";;
let x = "if\( \|\t\|\n\|\f\|\t\|\).\( \|\t\|\n\|\f\|\t\|\)=\( \|\t\|\n\|\f\|\t\|\).*";;
val x : string =
"if\( \|\t\|\n\|\f\|\t\|\).\( \|\t\|\n\|\f\|\t\|\)=\( \|\t\|\n\|\f\|\t\|\).*"
Str.regexp x;;
Exception: Invalid_argument "index out of bounds".
Additional information
The backtrace is not very useful, just pointing to recursive invocations of emit_code:
Raised by primitive operation at file "str.ml", line 254, characters 4-49
Called from file "str.ml", line 385, characters 6-17
Called from file "str.ml", line 344, characters 6-17
Called from file "str.ml", line 413, characters 6-17
Called from file "str.ml", line 422, characters 2-14
The text was updated successfully, but these errors were encountered:
I missed the top line. The error is in patch_instr at l254
(* Fill a reserved instruction slot with a GOTO or PUSHBACK instruction *)
let patch_instr pos opc dest =
(!prog).(pos) <- (instr opc (displ dest pos)) in
from a Group (n, r) call to emit_code at l385
from a Star r match at l344
Here are the input values to patch_instr for the whole run:
Original bug ID: 7369
Reporter: @johnwhitington
Assigned to: @damiendoligez
Status: resolved (set by @xavierleroy on 2016-12-04T15:34:48Z)
Resolution: fixed
Priority: normal
Severity: major
Version: 4.03.0
Target version: 4.05.0 +dev/beta1/beta2/beta3/rc1
Fixed in version: 4.05.0 +dev/beta1/beta2/beta3/rc1
Category: otherlibs
Monitored by: @gasche
Bug description
#load "str.cma";;
let x = "if\( \|\t\|\n\|\f\|\t\|\).\( \|\t\|\n\|\f\|\t\|\)=\( \|\t\|\n\|\f\|\t\|\).*";;
val x : string =
"if\( \|\t\|\n\|\f\|\t\|\).\( \|\t\|\n\|\f\|\t\|\)=\( \|\t\|\n\|\f\|\t\|\).*"
Str.regexp x;;
Exception: Invalid_argument "index out of bounds".
Additional information
The backtrace is not very useful, just pointing to recursive invocations of emit_code:
Raised by primitive operation at file "str.ml", line 254, characters 4-49
Called from file "str.ml", line 385, characters 6-17
Called from file "str.ml", line 344, characters 6-17
Called from file "str.ml", line 413, characters 6-17
Called from file "str.ml", line 422, characters 2-14
The text was updated successfully, but these errors were encountered: