Error 42: Symbol Undefined __d_throwc

Tyro[a.c.edwards] nospam at home.com
Fri Nov 19 22:45:36 PST 2010


The following:

import std.regex;

void main()
{
	string s = "$,";
	replace(s, regex("$",","), ""); // Is this possible?  If so, what is 
the propper way to do it?
	assert(s == "", s);
}

Compiled with dmd.2.039, 042, 048, and 049 but yields a runtime error:
D:\code>bug
object.Exception: unrecognized attribute

Compiled with dmd.2.050, it yields the linker error:
D:\code>dmd bug
OPTLINK (R) for Win32  Release 8.00.8
Copyright (C) Digital Mars 1989-2010  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
bug.obj(bug)
  Error 42: Symbol Undefined __d_throwc
--- errorlevel 1

I grepped my hard drive for _d_throwc and found the following:
D:\code>grep -r -i _d_throwc d:\*.*
\dmd2\linux\lib\libphobos2.a:_d_throwc
\dmd2\linux\lib\libphobos2.a:.text._d_throwc
\dmd2\linux\lib\libphobos2.a:.rel.text._d_throwc
\dmd2\osx\lib\libphobos2.a:__d_throwc
\dmd2\src\dmd\dmd.exe:_d_throwc
\dmd2\src\dmd\rtlsym.obj:_d_throwc
\dmd2\src\dmd\backend\rtlsym.h:SYMBOL_MARS(THROWC,          FLfunc,(mES 
| mBP),"_d_throwc", SFLexit, t) \
\dmd2\src\druntime\deh.obj:__d_throwc..
\dmd2\src\druntime\lib\druntime.lib:__d_throwc..
\dmd2\src\druntime\lib\druntime.lib:__d_throwc.
\dmd2\src\druntime\src\rt\deh.c:void _d_throwc(Object *h)
\dmd2\src\druntime\src\rt\deh2.d:extern (C) void _d_throwc(Object *h)
\dmd2\src\phobos\phobos.lib:__d_throwc..
\dmd2\windows\bin\dmd.exe:_d_throwc

Redundant entries were removed for brevity.

Function _d_throwc is defined on line 152 of 
dmd2\src\druntime\src\rt\deh2.d and line 232 of 
dmd2\src\druntime\src\rt\deh.d. I do not know how to correct the problem 
however it does seem odd that Linux's libphobos2.a uses the same name as 
was originally defined "_d_throwc" while OSX's libphobos2.a, 
druntime.lib and phobos.lib are different. Note that this function did 
not exist prior to dmd.2.050. Don't know if it matters but I'm using 
Win7. Any assistance is appreciated.

Andrew


More information about the Digitalmars-d mailing list