[Issue 2054] New: Const system broken on struct assignment.

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Apr 28 16:28:41 PDT 2008


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

           Summary: Const system broken on struct assignment.
           Product: D
           Version: 2.012
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: accepts-invalid
          Severity: critical
          Priority: P1
         Component: DMD
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: brunodomedeiros+bugz at gmail.com


Const system broken on struct assignment:
---- ----
struct Struct { 
        char* chptr; 
}

void main()
{
        char ch = 'd';
        invariant Struct iStruct = {&ch};

        Struct y = iStruct; // BREAKAGE
        *y.chptr = 'X'; // Because now we can do this
}
---- ----
Like Andrei mentioned in accu-functional.pdf , such struct assignment should
only be allowed if the struct refered to no mutable memory (which is not the
case).


-- 



More information about the Digitalmars-d-bugs mailing list