digitalmars.D.bugs - [Issue 1123] New: We can change Struct.init
- d-bugmail puremagic.com Apr 11 2007
- d-bugmail puremagic.com Apr 25 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1123 Summary: We can change Struct.init Product: D Version: unspecified Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: s180m yahoo.co.jp struct Matrix { double e = 1.; Matrix scale(double r){e*=r;return *this;} const Matrix Identity = {10.}; } void main(){ for(int i;i<5;i++){ printf("%f\n",Matrix.Identity.scale(.9).e); } printf("\n"); for(int i;i<5;i++){ printf("%f\n",Matrix.init.scale(.9).e); } } ----------------- 9.000000 8.100000 7.290000 6.561000 5.904900 0.900000 0.810000 0.729000 0.656100 0.590490 --
Apr 11 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1123 thomas-dloop kuehne.cn changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|We can change Struct.init |We can change Struct.init ------- Comment #1 from thomas-dloop kuehne.cn 2007-04-25 12:58 ------- That is again a case where the compiler didn't put unchangeable content (Identitiy and init) readonly section but read-write section. On Linux "init" is in a readonly section and thus the second loop segfaults. It would be nice if the compiler enforced/checked read-write rights. --
Apr 25 2007








d-bugmail puremagic.com