Is this a bug with goto?

Jerry Quinn jlquinn at optonline.net
Sat Apr 17 09:11:53 PDT 2010


In the spec it says that it's illegal to skip an initialization using goto.  Unless I'm mistaken, the code below does that for b, s, and c.  However, it compiles without complaint.

So, should the compiler be complaining, or is the text about goto really saying that behavior is undefined.  Obviously the latter makes it easier for the compiler writer :-)

void foo() {
  goto L0;
    int b;
    struct S { int a; this(int c) { a=c; } }
    S s = S(5);
    class C { int a; }
    C c = new C;
 L0: ;
    s.a++;
    c.a++;
}

thanks,
Jerry



More information about the Digitalmars-d mailing list