www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Regression] Misplaced initialisers in static rectangular array

reply Stewart Gordon <smjg_1998 yahoo.com> writes:
Using DMD 0.126, Windows 98SE.

The spec contradicts itself on whether this is valid D.  But whether it 
is or not, it certainly shouldn't be doing what it's doing.  Which seems 
to be skipping only one byte instead of three for the uninitialised 
elements.

----------
import std.stdio;

const char[3][13] month = [
     1: "Jan", "Feb", "Mar", "Apr", "May", "Jun",
     8: "Aug", "Sep", "Oct", "Nov", "Dec"
];

void main() {
     writefln(month[1]);
     writefln(month[2]);
     writefln(month[5]);
     writefln(month[7]);
     writefln(month[8]);
     writefln(month[6]);
}
----------
nFe
bMa
yJu
ugS
epO
nError: 4invalid UTF-8 sequence
----------

My vote goes to the sentence

     "If any members of an array are initialized, they all must be."

being the correct one, in which case this should be a compile error.

Stewart.

-- 
My e-mail is valid but not my primary mailbox.  Please keep replies on 
the 'group where everyone may benefit.
Jun 14 2005
next sibling parent "Walter" <newshound digitalmars.com> writes:
It's valid D, and a compiler bug.
Jun 16 2005
prev sibling parent Thomas Kuehne <thomas-dloop kuehne.this-is-spam.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Stewart Gordon schrieb am Tue, 14 Jun 2005 10:26:20 +0100:
 Using DMD 0.126, Windows 98SE.

 The spec contradicts itself on whether this is valid D.  But whether it 
 is or not, it certainly shouldn't be doing what it's doing.  Which seems 
 to be skipping only one byte instead of three for the uninitialised 
 elements.

 ----------
 import std.stdio;

 const char[3][13] month = [
      1: "Jan", "Feb", "Mar", "Apr", "May", "Jun",
      8: "Aug", "Sep", "Oct", "Nov", "Dec"
 ];

 void main() {
      writefln(month[1]);
      writefln(month[2]);
      writefln(month[5]);
      writefln(month[7]);
      writefln(month[8]);
      writefln(month[6]);
 }
 ----------
 nFe
 bMa
 yJu
 ugS
 epO
 nError: 4invalid UTF-8 sequence
 ----------

Added to DStress as http://dstress.kuehne.cn/run/a/array_initialization_17_A.d http://dstress.kuehne.cn/run/a/array_initialization_17_B.d http://dstress.kuehne.cn/run/a/array_initialization_17_C.d Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFCs9t33w+/yD4P9tIRAlMnAKCiGiYGayK+S0uHDNUq9UrAkVRDJgCfU1ac ksQxWinc8EYlVsq1/bPC420= =dbnV -----END PGP SIGNATURE-----
Jun 18 2005