D.gnu - [Bug 81] New: incorrect statement is not reachable in 0.18
- d-bugmail puremagic.com (51/51) Apr 02 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=81
- Brad Roberts (2/2) Apr 02 2006 Have you tried this with dmd itself? It's unlikely that this is a gdc
- Derek Parnell (33/94) Apr 02 2006 I was under the impression that the things enclosed in debug{} and
- d-bugmail puremagic.com (10/10) Apr 02 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=81
http://d.puremagic.com/bugzilla/show_bug.cgi?id=81 Summary: incorrect statement is not reachable in 0.18 Product: GDC Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: minor Priority: P2 Component: glue layer AssignedTo: braddr puremagic.com ReportedBy: lane downstairspeople.org This is from the version hosted at http://www.puremagic.com/~braddr/d/gdc/ ======= example.d ======= module example; import std.c.stdio, std.string; void foo() { printf( toStringz( "foo!" ) ); } void bar() { printf( toStringz( "bar!" ) ); } void main( char[][] args ) { switch( args[1] ) { debug { case "--foo": case "-f": foo(); break; } version( bar ) { case "--bar": case "-b": bar(); break; } default: foo(); bar(); break; } } ======== ======== lane wookies:~$ gdc --version gdc (GCC) 4.0.3 (gdc 0.18-alpha-1, using dmd 0.148) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. lane wookies:~$ gdc -fdebug -fversion=bar -Wall example.d warning - example.d:21: statement is not reachable --
Apr 02 2006
Have you tried this with dmd itself? It's unlikely that this is a gdc specific bug.
Apr 02 2006
On Mon, 3 Apr 2006 02:56:33 +0000 (UTC), d-bugmail puremagic.com wrote:http://d.puremagic.com/bugzilla/show_bug.cgi?id=81 Summary: incorrect statement is not reachable in 0.18 Product: GDC Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: minor Priority: P2 Component: glue layer AssignedTo: braddr puremagic.com ReportedBy: lane downstairspeople.org This is from the version hosted at http://www.puremagic.com/~braddr/d/gdc/ ======= example.d ======= module example; import std.c.stdio, std.string; void foo() { printf( toStringz( "foo!" ) ); } void bar() { printf( toStringz( "bar!" ) ); } void main( char[][] args ) { switch( args[1] ) { debug { case "--foo": case "-f": foo(); break; } version( bar ) { case "--bar": case "-b": bar(); break; } default: foo(); bar(); break; } } ======== ======== lane wookies:~$ gdc --version gdc (GCC) 4.0.3 (gdc 0.18-alpha-1, using dmd 0.148) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. lane wookies:~$ gdc -fdebug -fversion=bar -Wall example.d warning - example.d:21: statement is not reachableI was under the impression that the things enclosed in debug{} and version{} blocks had to be complete expressions. In you example, you enclose the 'case:' keyword and I'm not sure that is supposed to be allowed. For example, this works ... void main( char[][] args ) { switch( args[1] ) { case "--foo": case "-f": debug { foo(); } break; case "--bar": case "-b": version( bar ) { bar(); } break; default: foo(); bar(); break; } } Anyhow, I'm sure that a better message would have helped this situation. -- Derek (skype: derek.j.parnell) Melbourne, Australia "Down with mediocracy!" 3/04/2006 2:44:27 PM
Apr 02 2006
http://d.puremagic.com/bugzilla/show_bug.cgi?id=81 lane downstairspeople.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE It's a frontend bug. Sorry. I'll check against dmd in the future. *** This bug has been marked as a duplicate of 82 *** --
Apr 02 2006