Bug 6030 – Segmentation fault with method overloading and alias this

Status
RESOLVED
Resolution
DUPLICATE
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
Other
OS
Mac OS X
Creation time
2011-05-18T11:38:00Z
Last change time
2011-11-03T08:36:39Z
Keywords
ice-on-invalid-code
Assigned to
nobody
Creator
robert
See also
http://d.puremagic.com/issues/show_bug.cgi?id=6029

Comments

Comment #0 by robert — 2011-05-18T11:38:10Z
struct A { static A a; alias a this; } struct B { int opSlice(size_t, size_t); int opSlice(size_t, A); } void main() { B b; b[0..A]; } Causes a segmentation fault using the latest git. Possibly related to issue #6029.
Comment #1 by hoganmeier — 2011-08-14T14:57:37Z
$ gdb --batch -ex 'run test4.d' -ex 'bt 25' dmd Program received signal SIGSEGV, Segmentation fault. 0x0000000000517f40 in aliasthisConvTo (ad=Cannot access memory at address 0x7fffff7fefe8) at mtype.c:7193 7193 { #0 0x0000000000517f40 in aliasthisConvTo (ad=Cannot access memory at address 0x7fffff7fefe8) at mtype.c:7193 #1 0x0000000000518380 in TypeStruct::implicitConvTo (this=0x86f2c0, to=0x8631d0) at mtype.c:7269 #2 0x0000000000518120 in aliasthisConvTo (ad=0x86f110, from=0x86f2c0, to=0x8631d0) at mtype.c:7213 #3 0x0000000000518380 in TypeStruct::implicitConvTo (this=0x86f2c0, to=0x8631d0) at mtype.c:7269 #4 0x0000000000518120 in aliasthisConvTo (ad=0x86f110, from=0x86f2c0, to=0x8631d0) at mtype.c:7213 #5 0x0000000000518380 in TypeStruct::implicitConvTo (this=0x86f2c0, to=0x8631d0) at mtype.c:7269 #6 0x0000000000518120 in aliasthisConvTo (ad=0x86f110, from=0x86f2c0, to=0x8631d0) at mtype.c:7213 ...
Comment #2 by k.hara.pg — 2011-08-14T16:12:32Z
Mutually recursion version. struct A { static B b; alias b this; } struct B { static A a; alias a this; } struct C { int opSlice(size_t, size_t){ return 0; } int opSlice(size_t, A){ return 0; } } void main() { C c; c[0..A]; }
Comment #3 by hoganmeier — 2011-11-03T08:36:39Z
This has nothing to do with method overloading. It's a stack overflow caused by aliasthisConvTo. *** This issue has been marked as a duplicate of issue 6029 ***