[Issue 13238] New: getMember trait changes function linkage
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Fri Aug 1 11:10:37 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=13238
Issue ID: 13238
Summary: getMember trait changes function linkage
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: minor
Priority: P1
Component: DMD
Assignee: nobody at puremagic.com
Reporter: vlevenfeld at gmail.com
struct Foo
{
extern (C) void function (int*) func;
}
struct Bar
{
static string code ()
{
string code;
foreach (symbol; __traits (allMembers, typeof(this)))
static if (is(typeof(__traits (getMember, typeof(this), symbol))))
{}
return code;
}
extern (C) void function (int*) func;
mixin(code);
}
struct Baz
{
static string code ()
{
string code;
foreach (symbol; __traits (allMembers, typeof(this)))
static if (is(typeof(__traits (getMember, typeof(this), symbol))))
{}
return code;
}
mixin(code);
extern (C) void function (int*) func;
}
void main ()
{
static assert (functionLinkage!(typeof(Foo.func)) == `C`);
static assert (functionLinkage!(typeof(Bar.func)) == `C`);
static assert (functionLinkage!(typeof(Baz.func)) == `D`); // BUG why?
}
--
More information about the Digitalmars-d-bugs
mailing list