digitalmars.D.bugs - [Issue 622] New: There should be a warning for unininitalized class reference
- d-bugmail puremagic.com (27/27) Nov 30 2006 http://d.puremagic.com/issues/show_bug.cgi?id=622
- d-bugmail puremagic.com (9/9) Nov 30 2006 http://d.puremagic.com/issues/show_bug.cgi?id=622
- Ary Manzana (16/50) Nov 30 2006 Actually, the warning should be in "f.data = 1;". You are trying to
- d-bugmail puremagic.com (12/12) Apr 12 2010 http://d.puremagic.com/issues/show_bug.cgi?id=622
- d-bugmail puremagic.com (10/10) Nov 26 2010 http://d.puremagic.com/issues/show_bug.cgi?id=622
http://d.puremagic.com/issues/show_bug.cgi?id=622 Summary: There should be a warning for unininitalized class reference Product: D Version: 0.175 Platform: PC OS/Version: Windows Status: NEW Severity: enhancement Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: andkhropov mtu-net.ru This error is very common for people with C++ background (I've already seen people asking questions about similar code several times): ---------------------------------------------- class Foo{ public int data; } void main() { Foo f; // obviously they try do this way as they got used to it in C++ // should be a warning here! f.data = 1;// Access violation } ---------------------------------------------- --
Nov 30 2006
http://d.puremagic.com/issues/show_bug.cgi?id=622 wbaxter gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |wbaxter gmail.com Yes please! I make this mistake all the time, and every time it takes a few minutes tracking down why and where my program is crashing. --
Nov 30 2006
d-bugmail puremagic.com escribió:http://d.puremagic.com/issues/show_bug.cgi?id=622 Summary: There should be a warning for unininitalized class reference Product: D Version: 0.175 Platform: PC OS/Version: Windows Status: NEW Severity: enhancement Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: andkhropov mtu-net.ru This error is very common for people with C++ background (I've already seen people asking questions about similar code several times): ---------------------------------------------- class Foo{ public int data; } void main() { Foo f; // obviously they try do this way as they got used to it in C++ // should be a warning here! f.data = 1;// Access violation } ----------------------------------------------Actually, the warning should be in "f.data = 1;". You are trying to access a member of an uninitialized variable. Take a look at this code: ---------------------------------------------- Foo f; if (something) { f = new Foo(); } else { f = new Bar(); } f.data = 1; ---------------------------------------------- (where Bar extends Foo, for example). No warning should be generated, everyhing in it's place. That's the way access to uninitialized variable in java works. They are errors, not just warnings (the program will crash there, no matter what happens).
Nov 30 2006
http://d.puremagic.com/issues/show_bug.cgi?id=622 bearophile_hugs eml.cc changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bearophile_hugs eml.cc This bug is half-fixed: the compiler is now able to catch this bug at compile-time, but only if the code is compiled with -O. I think the compiler has to catch this bug when not optimized mode is used too. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 12 2010
http://d.puremagic.com/issues/show_bug.cgi?id=622 Andrei Alexandrescu <andrei metalanguage.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED CC| |andrei metalanguage.com AssignedTo|nobody puremagic.com |bugzilla digitalmars.com -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 26 2010