[Issue 20012] export inside mixin doesn't seem to work
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Jul 23 08:34:10 UTC 2019
https://issues.dlang.org/show_bug.cgi?id=20012
Walter Bright <bugzilla at digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bugzilla at digitalmars.com
--- Comment #1 from Walter Bright <bugzilla at digitalmars.com> ---
It is exported, just as:
__D4test8__mixin43fooUZv
instead of:
_foo
You can see what's exported by running obj2asm on the .obj file, don't need to
use GetProcAddress. For example:
---
export extern(C) void fun() {}
mixin template M() {
export extern(C) void bar() {}
}
mixin M!();
---
dmd -c test.d
obj2asm test.obj
---
_TEXT segment dword use32 public 'CODE' ;size is 0
_TEXT ends
_DATA segment para use32 public 'DATA' ;size is 0
_DATA ends
CONST segment para use32 public 'CONST' ;size is 13
CONST ends
_BSS segment para use32 public 'BSS' ;size is 0
_BSS ends
FLAT group
extrn _fun
;expdef expflag=x00, export '_fun', internal '', ordinal=x0
extrn __D4test8__mixin43barUZv
;expdef expflag=x00, export '__D4test8__mixin43barUZv', internal '',
ordinal=x0
FMB segment dword use32 public 'DATA' ;size is 0
FMB ends
FM segment dword use32 public 'DATA' ;size is 4
FM ends
FME segment dword use32 public 'DATA' ;size is 0
FME ends
public __D4test12__ModuleInfoZ
_fun COMDAT flags=x0 attr=x0 align=x0
__D4test8__mixin43barUZv COMDAT flags=x0 attr=x10 align=x0
_TEXT segment
assume CS:_TEXT
_TEXT ends
_DATA segment
_DATA ends
CONST segment
__D4test12__ModuleInfoZ:
db 004h,010h,000h,000h,000h,000h,000h,000h ;........
db 074h,065h,073h,074h,000h ;test.
CONST ends
_BSS segment
_BSS ends
FMB segment
FMB ends
FM segment
dd offset FLAT:__D4test12__ModuleInfoZ
FM ends
FME segment
FME ends
_fun comdat
assume CS:_fun
ret
_fun ends
__D4test8__mixin43barUZv comdat
assume CS:__D4test8__mixin43barUZv
ret
__D4test8__mixin43barUZv ends
end
---
--
More information about the Digitalmars-d-bugs
mailing list