[Issue 1676] New: Undefined symbol at linking with circular import and enum

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Nov 16 16:42:05 PST 2007


http://d.puremagic.com/issues/show_bug.cgi?id=1676

           Summary: Undefined symbol at linking with circular import and
                    enum
           Product: D
           Version: 1.023
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: link-failure
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: smjg at iname.com


----- linkfail_a.d -----
import linkfail_b;

void main() {}

enum Qwert : byte { YUIOP, ASDFG }

struct Hjkl {
    Qwert zxcvb() {
        return Qwert.YUIOP;
    }
}
----- linkfail_b.d -----
import linkfail_a;

void nm() {
    try {
        qaz(Hjkl.init.zxcvb);
    } catch (Object e) {}
}

void qaz(Qwert wsx) {}

const int[] edc = [ Qwert.YUIOP: 42, 105 ];
----------

Fails:
dmd -c linkfail_a.d
dmd -c linkfail_b.d
dmd linkfail_a.obj linkfail_b.obj

Fails:
dmd -c linkfail_b.d
dmd linkfail_a.d linkfail_b.obj

Works:
dmd linkfail_a.d linkfail_b.d

Both failure cases give the same error:
----------
d:\dmd\bin\..\..\dm\bin\link.exe linkfail_a+linkfail_b,,,user32+kernel32/noi;
OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

linkfail_b.obj(linkfail_b)
 Error 42: Symbol Undefined _D10linkfail_a4Hjkl5zxcvbMFZE10linkfail_a5Qwert
--- errorlevel 1
----------

This bites the date/time code in my utility library.  At least, I *think* this
is a regression....


-- 



More information about the Digitalmars-d-bugs mailing list