[Issue 11093] New: Can't compile DMD with VS12

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Sep 22 04:21:35 PDT 2013


http://d.puremagic.com/issues/show_bug.cgi?id=11093

           Summary: Can't compile DMD with VS12
           Product: D
           Version: D2
          Platform: All
        OS/Version: Windows
            Status: NEW
          Severity: blocker
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: temtaime at gmail.com


--- Comment #0 from Temtaime <temtaime at gmail.com> 2013-09-22 04:21:34 PDT ---
code * __pascal cat (code *c1 , code *c2 );

backend\code.h(514) : error C2146: syntax error : missing ';' before identifier
'cat'
backend\code.h(514) : error C4430: missing type specifier - int assumed. Note:
C++ does not support default-int

Resolution:

Change in code.h:514:

FROM
code * __pascal cat (code *c1 , code *c2 );

TO
code * cat (code *c1 , code *c2 );



And in cgen.c:95



FROM
#if TX86 && __INTSIZE == 4 && __SC__
__declspec(naked) code * __pascal cat(code *c1,code *c2)
{
    _asm
    {
        mov     EAX,c1-4[ESP]
        mov     ECX,c2-4[ESP]
        test    EAX,EAX
        jne     L6D
        mov     EAX,ECX
        ret     8

L6D:    mov     EDX,EAX
        cmp     dword ptr [EAX],0
        je      L7B
L74:    mov     EDX,[EDX]
        cmp     dword ptr [EDX],0
        jne     L74
L7B:    mov     [EDX],ECX
        ret     8
    }
}
#else
code * __pascal cat(code *c1,code *c2)
{   code **pc;

    if (!c1)
        return c2;
    for (pc = &code_next(c1); *pc; pc = &code_next(*pc))
        ;
    *pc = c2;
    return c1;
}
#endif


TO
code * cat(code *c1,code *c2)
{   code **pc;

    if (!c1)
        return c2;
    for (pc = &code_next(c1); *pc; pc = &code_next(*pc))
        ;
    *pc = c2;
    return c1;
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list