You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want to export non-mangled instantiated through alias template function.
it can be useful for WASM, DLLs/SharedLibs and etc.
but alias for template instatiation is ignored.
pragma mangle to alias is ignored too.
-----------------------------------
void main() {}
export: // EXPORTed
extern (C): // NO MANGLE but IGNORED
public:
void fun( Char )( Char* ) { }
pragma (mangle, "func") // IGNORED
alias func = fun!char;
pragma( msg, func.mangleof );
pragma (mangle, "funw") // IGNORED
alias funw = fun!wchar;
pragma( msg, funw.mangleof );
------------ OUTPUT -----------------------
_D9onlineapp__T3funTaZQhUNaNbNiNfPaZv
_D9onlineapp__T3funTuZQhUNaNbNiNfPuZv
current workaround: wrap template funcs to non-template.
possible solution:
if "alias" locates in non-mangle block (extern(C) for example) then do not mangle name and check that no others entities with same name exists in current context.
OR/AND
make "pragma mangle" working for alias-es too.
The text was updated successfully, but these errors were encountered:
a11e99z reported this on 2019-08-22T15:08:26Z
Transferred from https://issues.dlang.org/show_bug.cgi?id=20153
Description
The text was updated successfully, but these errors were encountered: