Created attachment 1177
Source code for test case
Given the attached code (also available at
https://gist.github.com/5a0b4685c6d316620c86 ) there is a range error when
trying to access a named capture group when using a static regex object.
When removing static from the declaration of the regex object there is no range
error on runtime.
The attached test case is run as follows.
$ dmd -run regex.d
c[1] = a
c["nick"] = a
$ dmd -version=Static -run regex.d
c[1] = a
[email protected](2145): Range violation
----------------
regex(_d_array_bounds+0x16) [0x80c9746]
regex() [0x80ce916]
regex(@trusted uint
std.regex.lookupNamedGroup!(immutable(char)[]).lookupNamedGroup(std.regex.NamedGroup[],
immutable(char)[])+0x5a) [0x80c5002]
regex(@trusted immutable(char)[] std.regex.Captures!(immutable(char)[],
uint).Captures.opIndex!(immutable(char)[]).opIndex(immutable(char)[])+0x48)
[0x80c4f20]
regex(_Dmain+0xa5) [0x809ef79]
regex(extern (C) int rt.dmain2.main(int, char**).void runMain()+0x14)
[0x80c9d20]
regex(extern (C) int rt.dmain2.main(int, char**).void tryExec(scope void
delegate())+0x18) [0x80c9830]
regex(extern (C) int rt.dmain2.main(int, char**).void runAll()+0x32)
[0x80c9d62]
regex(extern (C) int rt.dmain2.main(int, char**).void tryExec(scope void
delegate())+0x18) [0x80c9830]
regex(main+0x94) [0x80c97e4]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0xb75c94d3]
----------------
The bug appears on both dmd 2.059 (on ubuntu) and dmd 2.061 (on archlinux).
Comment #1 by dmitry.olsh — 2013-01-08T02:25:24Z
Seems like a duplicate of Issue 8529 ?
Comment #2 by dmitry.olsh — 2013-03-10T00:56:11Z
*** Issue 8529 has been marked as a duplicate of this issue. ***