How can we call a func template instance using the Mars vendor already ?
user1234
user1234 at 12.de
Thu Feb 19 15:37:42 UTC 2026
Not very important but I'd like to know if it's possible... so
try this with DMD
```d
module runnable;
// The OK part
int ok1(){return 1;}
int ok2(){return 2;}
void OK()
{
ulong r;
asm
{
xor R8, R8;
call ok1;
add R8, RAX;
call ok2;
add R8, RAX;
mov r, R8;
}
assert(r == 3);
}
// The NG part
int ng(int i)() => i;
static foreach (i; 1..3)
alias T = ng!i;
void NG()
{
ulong r;
asm
{
xor R8, R8;
call _D8runnable__T2ngVii1ZQiFNaNbNiNfZi;
add R8, RAX;
call _D8runnable__T7ngVii2ZQnFNaNbNiNfZi;
add R8, RAX;
mov r, R8;
}
assert(r == 3);
}
int main()
{
OK();
NG();
return 0;
}
```
so you'll get
> Error: function `runnable.NG` label
> `_D8runnable__T2ngVii1ZQiFNaNbNiNfZi` is undefined
> Error: function `runnable.NG` label
> `_D8runnable__T7ngVii2ZQnFNaNbNiNfZi` is undefined
So to keep things simples the idea is to provide a valid function
identifier in the asm. I've used compiler explorer to get the
__valid__ mangled version (https://godbolt.org/z/WYMqMhnWG). No
luck.
Is that even possible ?
More information about the Digitalmars-d-learn
mailing list