www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 3133] New: Compiler does not check that static array casts are legal

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

           Summary: Compiler does not check that static array casts are
                    legal
           Product: D
           Version: 1.039
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: accepts-invalid
          Severity: minor
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: jarrett.billingsley gmail.com


When doing casts on dynamic arrays, invalid casts (i.e. where the sizes of the
source and destination arrays do not have a 0 remainder) are correctly
diagnosed as an error:

short[] x = [1];
int[] y = cast(int[])x; // error, array cast misalignment

The equivalent operation performed on static arrays should be diagnosable at
compile-time, but isn't:

short[1] x = [1];
int[1] y = cast(int[1])x; // accepted, even though illegal
writefln("%s", y[0]); // prints garbage

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