[Issue 20716] New: Wrong code/ABI for extern(C++) interface method that returns non-POD
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Apr 1 02:34:43 UTC 2020
https://issues.dlang.org/show_bug.cgi?id=20716
Issue ID: 20716
Summary: Wrong code/ABI for extern(C++) interface method that
returns non-POD
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: major
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: ilyayaroshenko at gmail.com
// OS: Linux, macOS
extern(C++, "foo"):
struct S
{
void* s;
~this() {}
// or this(this) {}
}
interface I
{
S x();
}
final class C : I
{
long l = 3;
S x()
{
assert(l == 3); //fails
return S.init;
}
}
extern(D)
void main()
{
auto s = new C().I.x;
}
--
More information about the Digitalmars-d-bugs
mailing list