← Back to index
|
Original Bugzilla link
Bug 15014 – Win64: Invalid C++ mangling for multiple long arguments
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Windows
Creation time
2015-09-05T07:48:00Z
Last change time
2015-09-07T08:29:56Z
Keywords
link-failure, pull
Assigned to
nobody
Creator
r.sagitario
Comments
Comment #0
by r.sagitario — 2015-09-05T07:48:10Z
Detected by the fuzzer and manually reduced: // cppa.d extern(C++) void fuzz1_cppvararg(long arg10, long arg11, bool arg12); extern(C++) void fuzz1_dvararg(long arg10, long arg11, bool arg12) { fuzz1_checkValues(arg10, arg11, arg12); } extern(C++) void fuzz1_checkValues(long arg10, long arg11, bool arg12) { assert(arg10 == 103); assert(arg11 == 104); assert(arg12 == false); } void main() { long arg10 = 103; long arg11 = 104; bool arg12 = false; fuzz1_dvararg(arg10, arg11, arg12); fuzz1_cppvararg(arg10, arg11, arg12); } // cppb.cpp void fuzz1_checkValues(long long arg10, long long arg11, bool arg12); void fuzz1_cppvararg(long long arg10, long long arg11, bool arg12) { fuzz1_checkValues(arg10, arg11, arg12); } compile with 64-bit cl: cl /c cppd.cpp dmd -m64 cppa.d cppd.obj cppa.obj : error LNK2019: unresolved external symbol "void __cdecl fuzz1_cppvararg(__int64,__int64,bool)" (?fuzz1_cppvararg@@YAX_J_J_N@Z) referenced in function _D4cppa5fuzz1FZv cppb.obj : error LNK2019: unresolved external symbol "void __cdecl fuzz1_checkValues(__int64,__int64,bool)" (?fuzz1_checkValues@@YAX_J0_N@Z) referenced in function "void __cdecl fuzz1_cppvararg(__int64,__int64,bool)" (?fuzz1_cppvararg@@YAX_J0_N@Z)
Comment #1
by r.sagitario — 2015-09-05T08:02:27Z
https://github.com/D-Programming-Language/dmd/pull/5038
Comment #2
by github-bugzilla — 2015-09-07T08:29:56Z
Commit pushed to master at
https://github.com/D-Programming-Language/dmd
https://github.com/D-Programming-Language/dmd/commit/63f19847131f89a6b526b7d1008b7214b9002dac
Merge pull request #5038 from rainers/issue_15014 Fix issue 15014 - Win64: Invalid C++ mangling for multiple long arguments