[Issue 20336] New: Regression (2.088.1) C++ mangling problem with multiple const ref parameters
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Oct 30 03:25:52 UTC 2019
https://issues.dlang.org/show_bug.cgi?id=20336
Issue ID: 20336
Summary: Regression (2.088.1) C++ mangling problem with
multiple const ref parameters
Product: D
Version: D2
Hardware: x86
OS: Mac OS X
Status: NEW
Severity: regression
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: andrej.mitrovich at gmail.com
cpp.cpp:
-----
struct Value { };
void one (Value const& a)
{
}
void two (Value const& a, Value const& b)
{
}
-----
test.d:
-----
struct Value { }
extern(C++) void one(ref const(Value) a);
extern(C++) void two(ref const(Value) a, ref const(Value) b);
void main ()
{
Value value;
one(value);
two(value, value); // linker error with 2.088.1
}
-----
2.088.1:
-----
$ g++ -c -g -fPIC -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14 cpp.cpp
$ rdmd --force -L-lstdc++ -vcolumns cpp.o test.d
Undefined symbols for architecture x86_64:
"two(Value const&, Value const)", referenced from:
__Dmain in test.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Error: linker exited with status 1
-----
Works ok with 2.088.0
--
More information about the Digitalmars-d-bugs
mailing list