[Issue 9816] Export is mostly broken

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Apr 7 21:32:12 PDT 2013


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



--- Comment #3 from Martin Nowak <code at dawg.eu> 2013-04-07 21:32:10 PDT ---
(In reply to comment #0)
> 1) Exporting a global variable leads to a linker error

The problem seems to be that export uses C like rules to distinguish
declarations and definitions. For declarations export means
__declspec(dllimport) and for definitions __declspec(dllexport).

export void foo();   // this treated as import
export void foo() {} // this treated as export

For global variables to be an export you need an initializer.

export __gshared int bar;     // this treated as import
export __gshared int bar = 0; // this treated as export

I don't think that rule makes sense as it's actually defining a variable and is
default initalized.
To mark a declaration-only extern should be used.

Furthermore this behavior always requires a header file with only declarations
for any importing module.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list