[Issue 10423] New: built-in arrays being overwritten

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Jun 20 05:50:01 PDT 2013


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

           Summary: built-in arrays being overwritten
           Product: D
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: iteronvexor at gmail.com


--- Comment #0 from Caligo <iteronvexor at gmail.com> 2013-06-20 05:50:00 PDT ---
// GNU/Linux 64-bit
// DMD 2.063

This is as far as I could narrow it down.

------------8<------------8<------------
import std.stdio;

struct S(size_t M, size_t N) {

  double[] _data = new double[M*N];
  alias _data this;

  this(double[M*N] data...) pure nothrow
  {
    _data[] = data[];
  }
}

unittest {
  auto m1 = S!(4,4)(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  auto m2 = S!(2,2)(1,1,1,1);
  auto m3 = S!(2,3)(1,1,1,1,1,1);
  auto m4 = S!(3,2)(1,1,1,1,1,1);
  auto m6 = S!(3,3)(1,1,1,1,1,1,1,1,1);
  auto m9 = S!(4,4)(4,0,0,0,0,0,2,0,0,1,2,0,1,0,0,1);

  assert(S!(2,2)(1,1,1,1)._data == [1,1,1,1]);
  writeln(m1);
}

void main() { }
------------>8------------>8------------


Expected:
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ,1 ,1 ,1 ,1]

I get:
[4, 0, 0, 0, 0, 0, 2, 0, 0, 1, 2, 0, 1, 0, 0, 1]

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


More information about the Digitalmars-d-bugs mailing list