Thread overview | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
February 18, 2010 [Issue 3820] New: Small hole in switch semantics | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=3820 Summary: Small hole in switch semantics Product: D Version: 2.040 Platform: All OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: bearophile_hugs@eml.cc --- Comment #0 from bearophile_hugs@eml.cc 2010-02-18 11:04:44 PST --- void main() { switch (1) { int x; case 1: assert(x == int.init); default: } } Here often x != x.init. D isn't C, so it's better to avoid holes in its semantics, if possible. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
August 02, 2010 [Issue 3820] Small hole in switch semantics | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=3820 Jeffrey Yasskin <jyasskin@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jyasskin@gmail.com --- Comment #1 from Jeffrey Yasskin <jyasskin@gmail.com> 2010-08-02 08:38:13 PDT --- Interestingly, http://www.digitalmars.com/d/2.0/statement.html#GotoStatement says "It is illegal for a GotoStatement to be used to skip initializations." but doesn't say anything of the sort about switch statements. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
May 12, 2011 [Issue 3820] Small hole in switch semantics | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=3820 bearophile_hugs@eml.cc changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |andrej.mitrovich@gmail.com --- Comment #2 from bearophile_hugs@eml.cc 2011-05-12 15:33:44 PDT --- *** Issue 5989 has been marked as a duplicate of this issue. *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
March 11, 2012 [Issue 3820] Small hole in switch semantics | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=3820 --- Comment #3 from bearophile_hugs@eml.cc 2012-03-11 14:14:59 PDT --- A probably related case: import std.stdio; enum Foo { A } void main() { Foo f = Foo.A; switch (f) { writeln(f); case Foo.A: break; } } With DMD 2.059head it prints nothing. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
March 12, 2012 [Issue 3820] Small hole in switch semantics | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=3820 dawg@dawgfoto.de changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dawg@dawgfoto.de --- Comment #4 from dawg@dawgfoto.de 2012-03-12 07:24:29 PDT --- *** Issue 7630 has been marked as a duplicate of this issue. *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
March 12, 2012 [Issue 3820] Small hole in switch semantics | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=3820 --- Comment #5 from dawg@dawgfoto.de 2012-03-12 07:37:28 PDT --- You can only execute that block with a goto or a loop. The initialization should happen anyhow. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
May 20, 2013 [Issue 3820] Small hole in switch semantics | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=3820 Maxim Fomin <maxim@maxim-fomin.ru> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |maxim@maxim-fomin.ru --- Comment #6 from Maxim Fomin <maxim@maxim-fomin.ru> 2013-05-19 21:09:14 PDT --- *** Issue 10121 has been marked as a duplicate of this issue. *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
May 20, 2013 [Issue 3820] Small hole in switch semantics | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=3820 --- Comment #7 from Martin Nowak <code@dawg.eu> 2013-05-20 03:20:58 PDT --- IIRC this switch is implemented as below. Unless we expect the block to always run, as in comment 3, it's difficult to fix. int foo(int a) { switch (var) { int res; case 1: res = 1; return res; default: return res; } } int foo(int a) { if (var == 1) goto L1; else goto Ldefault; int res; L1: res = 1; return res; Ldefault: return res; } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation