March 06, 2009 [Issue 2710] New: dmd2/src/druntime/src/../import/std/intrinsic.di misses pure and nothrow in signatures | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=2710 Summary: dmd2/src/druntime/src/../import/std/intrinsic.di misses pure and nothrow in signatures Product: D Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla@digitalmars.com ReportedBy: baryluk@smp.if.uj.edu.pl When compiling druntime with dmd2, gc/bacis/gcbits.d calls std.intrinsic.btr, which signatures is in ../import/std/intrinsic.di compiler don't emit proper code. Considering that file src/dmd/toir.c have on line 380 signature 9intrinsic3btrFNbPkkZi and that inspecting object file of gcbits.o I concluded that D compiler isn't emiting proper code because intrinsic.di had missing "nothrow and pure" keywords in few places. Druntime compiles (because there can be unresolved symbls), but then compiling phobos' unittest fails (because it links against everything and fails to find 9intrinsic3btrFPkkZi (which is for DMD1, and defined nowhere). Solution, edit ../import/std/intrinsic.di and ensure there are this signatures (as in phobos sources). nothrow: pure nothrow int bsf( uint v ); pure nothrow int bsr( uint v ); pure nothrow int bt( const uint* p, uint bitnum ); pure uint bswap( uint v ); I also concluded that intrinsic.di wasn't generated automatically from phobos' sources (-H switch), because dmd is generating proper (and much more compacted) version of code. This is rationall because there is no source files for it (intrinsic.d in phobos contains only declarations, but proper ones). -- |
March 06, 2009 [Issue 2710] dmd2/src/druntime/src/../import/std/intrinsic.di misses pure and nothrow in signatures | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2710 baryluk@smp.if.uj.edu.pl changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Summary|dmd2/src/druntime/src/../imp|dmd2/src/druntime/src/../imp |ort/std/intrinsic.di misses |ort/std/intrinsic.di misses |pure and nothrow in |pure and nothrow in |signatures |signatures ------- Comment #1 from baryluk@smp.if.uj.edu.pl 2009-03-06 10:56 ------- Ok, I think druntime version r107 solved this problem. -- |
Copyright © 1999-2021 by the D Language Foundation