[Issue 15843] New: D-type mangling used for extern(C) (extern) function declaration inside function body, on LDC, GDC, and DMD.
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Mon Mar 28 09:32:00 PDT 2016
https://issues.dlang.org/show_bug.cgi?id=15843
Issue ID: 15843
Summary: D-type mangling used for extern(C) (extern) function
declaration inside function body, on LDC, GDC, and
DMD.
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: lasssafin at gmail.com
Code:
void main() {
extern(C) extern int func(int);
static assert(func.mangleof == "_D1x4mainFZ4funcUiZi");
}
It is mangled as such on all 3 major compilers.
Using "pragma(mangle, "func")" as an attribute for func gives:
x.d(4): Error: unrecognized pragma(mangle)
x.d(6): Error: undefined identifier 'func'
x.d(7): Error: undefined identifier 'func'
Seemingly, the only user-side fix is moving the declaration out of the function
body.
--
More information about the Digitalmars-d-bugs
mailing list