digitalmars.D.bugs - [Issue 7106] New: DMD Segmentation faults!
- d-bugmail puremagic.com (33/33) Dec 14 2011 http://d.puremagic.com/issues/show_bug.cgi?id=7106
- d-bugmail puremagic.com (20/20) Jan 02 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7106
http://d.puremagic.com/issues/show_bug.cgi?id=7106 Summary: DMD Segmentation faults! Product: D Version: D2 Platform: x86_64 OS/Version: Linux Status: NEW Severity: critical Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: iteronvexor gmail.com struct Ma(T){ pure T alpha() const{ return 1.1; } Ma opBinary(string op)(in Ma m) const if(op == "-"){ return Ma(m); } } struct Pa(T){ Ma!T _m; alias _m this; } pure T foo(alias P, T)(in P!T p){ return (p - p).alpha(); } void main(){ Pa!double p1; foo(p1); } This is as far as I could narrow it down. Something starts to go wrong when 'opBinary' is called. Also, removing pure from 'foo' doesn't cause the seg fault. DMD 2.56, Linux-64bit -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 14 2011
http://d.puremagic.com/issues/show_bug.cgi?id=7106 Kenji Hara <k.hara.pg gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME In 2.057 and later, following errors are raised: test.d(17): Error: incompatible types for ((p) - (p)): 'const(Pa!(double))' and 'const(Pa!(double))' test.d(22): Error: template instance test.foo!(Pa,double) error instantiating Because, in Ma!T.opBinary(), return Ma(m); is not valid expression (it does not ignite copy construction). After fixing it to return Ma(); , the sample code compiles fine. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 02 2012