digitalmars.D.bugs - [Issue 735] New: dmd segfault
- d-bugmail puremagic.com (69/69) Dec 24 2006 http://d.puremagic.com/issues/show_bug.cgi?id=735
- Thomas Kuehne (21/24) Dec 25 2006 -----BEGIN PGP SIGNED MESSAGE-----
- d-bugmail puremagic.com (18/18) Feb 12 2007 http://d.puremagic.com/issues/show_bug.cgi?id=735
- d-bugmail puremagic.com (33/33) Feb 12 2007 http://d.puremagic.com/issues/show_bug.cgi?id=735
- d-bugmail puremagic.com (7/7) Feb 15 2007 http://d.puremagic.com/issues/show_bug.cgi?id=735
- d-bugmail puremagic.com (5/5) Jul 02 2007 http://d.puremagic.com/issues/show_bug.cgi?id=735
- d-bugmail puremagic.com (9/9) Jul 05 2007 http://d.puremagic.com/issues/show_bug.cgi?id=735
http://d.puremagic.com/issues/show_bug.cgi?id=735 Summary: dmd segfault Product: D Version: 0.178 Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P1 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: davidl 126.com testmain.d import modulefault; interface ITestClass { void callable(); } void main() { auto testLibrary = new testclass; auto testCtor = testLibrary.getCtor!(ITestClass,"test.testmodule.TestClass")(); } modulefault.d struct mystruct { char[] mystring; void opCall(char[] hello) { mystring = hello; } public void* address; } class testclass{ template getCtor(TInterface, char[] classname,T...) { static ClassInfo typeClass; static Object function (T, Object) rawCtor; static TInterface internalCtor(T t) { auto a = _d_newclass(typeClass); rawCtor(t, a); return cast(TInterface)a; } TInterface function(T) getCtor() { typeClass = getClassInfo!(classname)(); char[] localchar; foreach(a;T) { localchar~=a.mangleof; } rawCtor = cast(Object function (T, Object)) getSymbol( "_D" ~ mangleSymbolName!(classname) ~ mangleSymbolName!("_ctor") ~ "F" ~ localchar ~ "ZC" ~ mangleSymbolName!(classname)).address; return &internalCtor; } } template getClassInfo(char[] classname){ ClassInfo getClassInfo(){ return cast(ClassInfo)getSymbol("__Class_").address; } } mystruct getSymbol(char[] hello) { return mystruct(hello); } } notice: any grammar mistake in getClassInfo would still trigger this segfault so i guess the problem is in the parser --
Dec 24 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 d-bugmail puremagic.com schrieb am 2006-12-25:http://d.puremagic.com/issues/show_bug.cgi?id=735<snip>notice: any grammar mistake in getClassInfo would still trigger this segfault so i guess the problem is in the parserDavid please follow the common bug reporting guidelines outlined at http://www.digitalmars.com/bugs.html and http://www.prowiki.org/wiki4d/wiki.cgi?D__Tutorial/BugReports reducing your code results in 4 lines that reliable reproduce the bug: Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFFkAASLK5blCcjpWoRArS5AJwNeMI94ctI+Q0e+/M0v0p3ys3GjgCfSDEj QHvJb7IGw1n7rs4BlfqPF74= =/l+x -----END PGP SIGNATURE-----
Dec 25 2006
http://d.puremagic.com/issues/show_bug.cgi?id=735 davidl 126.com changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |critical Summary|dmd segfault |forward reference to type | |Object?? Version|0.178 |1.005 err, dmd not segfault any more, but if i add the following to modulefault.d to make it compile : extern(D) Object _d_newclass(ClassInfo a); dmd throws me: modulefault.d(16): Error: forward reference to type Object modulefault.d(16): Error: cannot implicitly convert expression (a) of type objec t.Object to Object --
Feb 12 2007
http://d.puremagic.com/issues/show_bug.cgi?id=735 the following represents the bug : simplified case: buginawhole.d extern(D) Object _d_newclass(ClassInfo a); class testclass{ template getCtor(TInterface, char[] classname,T...) { static ClassInfo typeClass; static Object function (T, Object) rawCtor; static TInterface internalCtor(T t) { Object a = _d_newclass(typeClass); rawCtor(t, a); return cast(TInterface)a; } TInterface function(T) getCtor() { return &internalCtor; } } } interface ITestClass { void callable(); } void main() { auto testLibrary = new testclass; auto testCtor = testLibrary.getCtor!(ITestClass,"test.testmodule.TestClass")(); } modulefault.d(8): Error: forward reference to type Object modulefault.d(8): Error: cannot implicitly convert expression (a) of type object .Object to Object --
Feb 12 2007
http://d.puremagic.com/issues/show_bug.cgi?id=735 braddr puremagic.com changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|critical |normal Version|1.005 |0.178 --
Feb 15 2007
http://d.puremagic.com/issues/show_bug.cgi?id=735 I can't reproduce any of the forward reference errors with DMD 1.018. Has this been fixed already? --
Jul 02 2007
http://d.puremagic.com/issues/show_bug.cgi?id=735 onlystupidspamhere yahoo.se changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME Cannot reproduce any forward reference errors so works for me. --
Jul 05 2007