digitalmars.D.bugs - [Issue 20336] New: Regression (2.088.1) C++ mangling problem with
- d-bugmail puremagic.com (49/49) Oct 29 2019 https://issues.dlang.org/show_bug.cgi?id=20336
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 puremagic.com Reporter: andrej.mitrovich 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 --
Oct 29 2019