www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 1028] New: Segfault using tuple inside asm code.

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1028

           Summary: Segfault using tuple inside asm code.
           Product: D
           Version: 1.007
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: clugdbug yahoo.com.au


Line (1) causes a segfault.
Line (2) causes an ICE.

Dsymbol::toSymbol() 'var1', kind = 'alias'
Assertion failure: '0' on line 103 in file 'tocsym.c'

--------
void a(X...)(X expr)
{
    alias X[0] var1;
    asm {
        fld double ptr X[0];   // (1) segfaults
        fstp double ptr var1;  // (2) ICE
    }
}

void main()
{
   a(3.6);
}


-- 
Mar 06 2007
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1028






Added to DStress as
http://dstress.kuehne.cn/run/t/tuple_19_A.d


-- 
Mar 11 2007
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1028


clugdbug yahoo.com.au changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED





The situation shown in the test case was fixed in DMD 1.011. The ICE seems to
be genuinely fixed, but the segfault still occurs in slightly more complex



-- 
Apr 11 2007
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1028






Fixed dmd 1.011

But the X[0] must be replaced with expr[0].


-- 
Apr 11 2007