www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 16687] New: Win COFF: Duplicate COMDAT on overloaded

https://issues.dlang.org/show_bug.cgi?id=16687

          Issue ID: 16687
           Summary: Win COFF: Duplicate COMDAT on overloaded templated
                    function
           Product: D
           Version: D2
          Hardware: All
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: Jesse.K.Phillips+D gmail.com

This code results in the following MS linker message:

test.obj : fatal error LNK1179: invalid or corrupt file: duplicate COMDAT
'_D4test8__T1STwZ1S1fMFNaNbNiNfwZv'
Error: linker exited with status 43694744


------------------
void main() {
    S!dchar a4;
}
struct S(T)
{
    void f(T value)
    {
    }

    void f(dchar c)
    {
    }
}
-------------------------

Obviously when the template is generated f(T)() is f(dchar), optlink doesn't
complain but I don't know what is correct.

Possibly similar:
https://issues.dlang.org/show_bug.cgi?id=11081
https://issues.dlang.org/show_bug.cgi?id=14541

--
Nov 14 2016