Bug 9280 – Runtime range violation with named capture groups in regex

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-01-07T19:05:00Z
Last change time
2013-03-18T13:00:41Z
Keywords
pull
Assigned to
nobody
Creator
nine5102

Attachments

IDFilenameSummaryContent-TypeSize
1177regex.dSource code for test caseapplication/octet-stream461

Comments

Comment #0 by nine5102 — 2013-01-07T19:05:56Z
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. ***
Comment #3 by dmitry.olsh — 2013-03-10T01:05:55Z
Comment #4 by github-bugzilla — 2013-03-11T16:54:58Z
Commit pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/be25fd00b1770aab17eca98deccacc08f55c73be fix Issue 9280 A bug in _ctfe branch that was introduced while stubbing out non-CTFeable blocks. Now CTFE is having more power and able to run the same code just fine!
Comment #5 by code — 2013-03-11T16:56:12Z
Should be fixed in Git master.