July 06, 2005 typeid in template scope codegeneration bug | ||||
---|---|---|---|---|
| ||||
// --- tmpl.d --- module tmpl; class TemplateClass(T) { void* p = cast(void*)typeid(T); } // --- core.d --- module core; private import tmpl; class A { int a; } int main(char[][] args) { TemplateClass!(A) tc = new TemplateClass!(A)(); return 0; } dmd -I. -IC:\dmd\src\phobos -c -ofcore.obj core.d dmd -I. -IC:\dmd\src\phobos -c -oftmpl.obj tmpl.d dmd -oftest.exe core.obj tmpl.obj C:\dmd\bin\..\..\dm\bin\link.exe core+tmpl,test.exe,,user32+kernel32/noi; OPTLINK (R) for Win32 Release 7.50B1 Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved core.obj(core) Error 42: Symbol Undefined __init_17TypeInfo_C4core1A If I'll try to compile both sources in one dmd call i.e. # dmd -I. -IC:\dmd\src\phobos core.d tmpl.d all compiles and links fine. This bug prevents std.boxer from being usable. -- Victor (aka nail) Nakoryakov nail-mail<at>mail<dot>ru Krasnoznamensk, Moscow, Russia |
July 21, 2005 Re: typeid in template scope codegeneration bug | ||||
---|---|---|---|---|
| ||||
Posted in reply to Victor Nakoryakov | -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Victor Nakoryakov schrieb am Wed, 06 Jul 2005 20:56:56 +0400: > // --- tmpl.d --- > module tmpl; > > class TemplateClass(T) > { > void* p = cast(void*)typeid(T); > } > > // --- core.d --- > module core; > private import tmpl; > > class A > { > int a; > } > > int main(char[][] args) > { > TemplateClass!(A) tc = new TemplateClass!(A)(); > return 0; > } > > dmd -I. -IC:\dmd\src\phobos -c -ofcore.obj core.d > dmd -I. -IC:\dmd\src\phobos -c -oftmpl.obj tmpl.d > dmd -oftest.exe core.obj tmpl.obj > C:\dmd\bin\..\..\dm\bin\link.exe core+tmpl,test.exe,,user32+kernel32/noi; > OPTLINK (R) for Win32 Release 7.50B1 > Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved > > core.obj(core) > Error 42: Symbol Undefined __init_17TypeInfo_C4core1A > > > If I'll try to compile both sources in one dmd call i.e. > # dmd -I. -IC:\dmd\src\phobos core.d tmpl.d > all compiles and links fine. This bug prevents std.boxer from being usable. Added to DStress as typeinfo_init_01 and typeinfo_init_02 http://dstress.kuehne.cn/complex/typeinfo_init Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFC39ja3w+/yD4P9tIRAohWAKCVLPFN9CJWQkOeRQuLSaOmYCyesQCcCzXK NaDoVvvnxWEnVe1nRDac6u8= =Wrxk -----END PGP SIGNATURE----- |
Copyright © 1999-2021 by the D Language Foundation