Summary: Compiler does not check that static array casts are
           Product: D
           Version: 1.039
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: accepts-invalid
          Severity: minor
          Priority: P2
         Component: DMD

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:
------- You are receiving this mail because: -------

Reply via email to