digitalmars.D.bugs - [Issue 3665] New: Assignment with array slicing does not work
- d-bugmail puremagic.com (31/31) Jan 02 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3665
- d-bugmail puremagic.com (13/13) Jan 03 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3665
- d-bugmail puremagic.com (48/48) Sep 13 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3665
- d-bugmail puremagic.com (12/12) Sep 21 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3665
http://d.puremagic.com/issues/show_bug.cgi?id=3665
Summary: Assignment with array slicing does not work
Product: D
Version: 1.054
Platform: x86
OS/Version: Windows
Status: NEW
Severity: regression
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: kai redstar.de
The following piece of code produces the error "Bug.d(13): Error: 'K[] =
this.hash[]' is not of integral type, it is a ulong[]" with DMD 1.053 and DMD
1.054. It worked without problems in DMD 1.050.
final class Bug
{
private ulong hash[8];
protected void transform(ubyte[] input)
{
ulong K[8];
ulong block[8];
ulong state[8];
block[] = cast(ulong[]) input;
state[] = block[] ^ (K[] = hash[]);
}
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 02 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3665
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |clugdbug yahoo.com.au
Workaround is to add [], changing this:
state[] = block[] ^ (K[] = hash[]);
into
state[] = block[] ^ (K[] = hash[])[];
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 03 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3665
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |patch
This is very simple: in arrayop.c, the assignment operators have been left out
of the lists of valid operations.
PATCH:
bool isArrayOpValid(Expression *e), line 54.
case TOKand:
case TOKor:
case TOKpow:
case TOKand:
case TOKor:
case TOKpow:
+ case TOKassign:
+ case TOKaddass:
+ case TOKminass:
+ case TOKmulass:
+ case TOKdivass:
+ case TOKmodass:
+ case TOKxorass:
+ case TOKandass:
+ case TOKorass:
+ case TOKpowass:
return isArrayOpValid(((BinExp *)e)->e1) &&
isArrayOpValid(((BinExp *)e)->e2);
And again in isArrayOperand(), line 600
case TOKand:
case TOKor:
+ case TOKpow:
+ case TOKassign:
+ case TOKaddass:
+ case TOKminass:
+ case TOKmulass:
+ case TOKdivass:
+ case TOKmodass:
+ case TOKxorass:
+ case TOKandass:
+ case TOKorass:
+ case TOKpowass:
case TOKneg:
case TOKtilde:
return 1;
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 13 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3665
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |bugzilla digitalmars.com
Resolution| |FIXED
14:01:50 PDT ---
http://www.dsource.org/projects/dmd/changeset/681
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 21 2010









d-bugmail puremagic.com 