[Issue 2627] New: std.traits.hasAliasing reports true for static arrays

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Jan 27 20:15:01 PST 2009


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

           Summary: std.traits.hasAliasing reports true for static arrays
           Product: D
           Version: 2.023
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Phobos
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: wbaxter at gmail.com


"hasAliasing" reports true even for static arrays.

struct X { float[3] vals; }
pragma(msg, hasAliasing!(X)?"true":"false"); --> true

---
One fix would be to change this (around line 342):
        else static if (is(T[0] foo : U[], U))
            enum hasRawAliasing = !is(U == invariant);

To this:
        else static if (is(T[0] foo : U[], U))
            enum hasRawAliasing = !is(U == invariant) && (!isStaticArray!(T[0])
|| hasRawPointerImpl!(U).result);


-- 



More information about the Digitalmars-d-bugs mailing list