Bug 42 – enable-checking error found in std/regexp.d
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
PowerPC
OS
Mac OS X
Creation time
2006-03-12T13:16:00Z
Last change time
2015-06-09T01:31:14Z
Keywords
ice-on-valid-code
Assigned to
dvdfrdmn
Creator
braddr
Comments
Comment #0 by braddr — 2006-03-12T13:16:05Z
reduced test case:
module std.regexp;
class RegExp
{
class Range { }
void parseRange()
{
Range r = new Range();
}
}
proposed patch from our irc discussion, does _not_ fix the problem:
--- d-glue.cc.orig 2006-03-11 21:37:48.000000000 -0600
+++ d-glue.cc 2006-03-12 13:11:42.000000000 -0600
@@ -2195,6 +2195,7 @@
Dsymbol * d = cd->toParent();
tree vthis_field = cd->vthis->toSymbol()->Stree;
+ t = d_convert_basic(Type::tvoid->pointerTo()->pointerTo()->toCtype(), t);
t = irs->component(
build1(INDIRECT_REF, TREE_TYPE(TREE_TYPE(t)), t),
vthis_field);
Comment #1 by braddr — 2006-03-22T00:41:46Z
I'm looking into this one now. The patch below is not going to fix this bug, though it might well fix some other as-of-yet unidentified bug. The loop surrounding it is never entered so the code is never executed.