[C--] switch statement inside a loop is not compiled correctly. A bug?

Ning Wang <[email protected]> Sat, 11 Apr 2009 13:46:13 -0700
Newsgroups gmane.comp.lang.c--
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------000100010900000003070407
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

My c-- code looks correct.   But the executable generated by qc-- throws 
"Trace/breakpoint trap (core dumped)". Any thought about this?

The c code and c-- code is attached.

Thanks,
Ning

--------------000100010900000003070407
Content-Type: text/plain;
 name="foo.i"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="foo.i"

extern int printf (const char * fmt, ...);

int foo ()
{
 static int beenhere = 0;
 beenhere++;
 return beenhere > 1;
}
int main (int argc, char ** argv)
{
    int a;

    for (;;)
    {
      a = foo ();
      if (a) return 0;

      switch (a)
      {
        case 1: printf ("case 1\n");
        default: 
             printf ("default\n");
             break;
      }
    }
   return 0;
}

--------------000100010900000003070407
Content-Type: text/plain;
 name="foo.c--"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="foo.c--"

dGFyZ2V0CiAgICAgIGJ5dGVvcmRlciBsaXR0bGUKICAgICAgZmxvYXQgImllZWU3NTQiCiAg
ICAgIG1lbXNpemUgOAogICAgICB3b3Jkc2l6ZSAzMgogICAgICBwb2ludGVyc2l6ZSAzMjsK
Yml0czIgU3lzdGVtLnJvdW5kaW5nX21vZGUgPSAiSUVFRSA3NTQgcm91bmRpbmcgbW9kZSI7
CmNvbnN0IFRZUEUgPSAxOwpjb25zdCBUWVBFREVDTCA9IDI7CmNvbnN0IFRZUEVERUYgPSAy
Owpjb25zdCBUWVBFT05MWSA9IDI7CnNlY3Rpb24gImRhdGEiCnsKICAgaW1wb3J0ICJwcmlu
dGYiIGFzIEBwcmludGY7CgogICBAc3RyX19mb29fZGFfMjg5NTY1NDc2XzI6CiAgIGJpdHM4
IFs5XSAiZGVmYXVsdFxuXDAwMCI7CiAgIEBzdHJfX2Zvb19kYV8yODk1NjU0NzZfMToKICAg
Yml0czggWzhdICJjYXNlIDFcblwwMDAiOwogICBAX2Zvb19fZm9vXzFfdW5pb25faW5pdF9f
Zm9vX19mb29fMWJlZW5oZXJlOgogICBiaXRzOCBbNF0gezB4MDo6Yml0czgsIDB4MDo6Yml0
czgsIDB4MDo6Yml0czgsIDB4MDo6Yml0czh9Owp9CgpzZWN0aW9uICJ0ZXh0Igp7CiAgIGV4
cG9ydCBAZm9vIGFzICJmb28iOwogICBzcGFuIFRZUEUgMjQKICAgewogICAgICBmb3JlaWdu
ICJDIiBAZm9vICgpCiAgICAgIHsKICAgICAgICAgYml0czMyIEBfZm9vcmV0OwogICAgICAg
ICBiaXRzMzIgQF9tbGNjX2VhX190bXBfY2VfMDsKICAgICAgICAgYml0czMyIEBfbWxjY19l
YV9fdG1wX2NlXzE7CgogICAgICAgICBAX21sY2NfZWFfX3RtcF9jZV8wID0gYml0czMyW0Bf
Zm9vX19mb29fMV91bmlvbl9pbml0X19mb29fX2Zvb18xYmVlbmhlcmVdOwogICAgICAgICBA
X21sY2NfZWFfX3RtcF9jZV8xID0gJWFkZChiaXRzMzJbQF9mb29fX2Zvb18xX3VuaW9uX2lu
aXRfX2Zvb19fZm9vXzFiZWVuaGVyZV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxOjpiaXRzMzIpOwogICAgICAgICBiaXRzMzJbQF9mb29fX2Zvb18xX3VuaW9uX2luaXRf
X2Zvb19fZm9vXzFiZWVuaGVyZV0gPSBAX21sY2NfZWFfX3RtcF9jZV8xOwogICAgICAgICBA
X2Zvb3JldCA9ICV6eDMyKCViaXQoJWd0KGJpdHMzMltAX2Zvb19fZm9vXzFfdW5pb25faW5p
dF9fZm9vX19mb29fMWJlZW5oZXJlXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE6OmJpdHMzMikpKTsKICAgICAgICAgZ290byBAZm9vMDAwMDAwNjsKICAgICAgICAgQGZv
bzAwMDAwMDY6CiAgICAgICAgIDsKICAgICAgICAgQGZvbzAwMDAwMDc6CiAgICAgICAgIDsK
ICAgICAgICAgZm9yZWlnbiAiQyIgcmV0dXJuIChAX2Zvb3JldCk7CiAgICAgIH0KICAgfQp9
CnNlY3Rpb24gInRleHQiCnsKICAgZXhwb3J0IEBtYWluIGFzICJtYWluIjsKICAgc3BhbiBU
WVBFIDE2MAogICB7CiAgICAgIGZvcmVpZ24gIkMiIEBtYWluIChiaXRzMzIgQGFyZ2NfVF84
LCAiYWRkcmVzcyIgYml0czMyIEBhcmd2X1RfMTU4KQogICAgICB7CiAgICAgICAgIGJpdHMz
MiBAX21haW5yZXQ7CiAgICAgICAgIHN0YWNrZGF0YSB7QF9tYWluXzFhOiBiaXRzOCBbNF07
fQogICAgICAgICBiaXRzMzIgQF9tbGNjX2VhX190bXBfY2VfMDsKICAgICAgICAgYml0czMy
IEBfbWxjY19lYV9fdG1wX2NlXzE7CgogICAgICAgICBAbWFpbjAwMDAwMDQ6CiAgICAgICAg
IDsKICAgICAgICAgQF9tbGNjX2VhX190bXBfY2VfMCA9IGZvcmVpZ24gIkMiIEBmb28gKCk7
CiAgICAgICAgIGJpdHMzMltAX21haW5fMWFdID0gQF9tbGNjX2VhX190bXBfY2VfMDsKICAg
ICAgICAgaWYgKCVlcShiaXRzMzJbQF9tYWluXzFhXSwgMDo6Yml0czMyKSkKICAgICAgICAg
ewogICAgICAgICAgICBnb3RvIEBtYWluMDAwMDAxMTsKICAgICAgICAgfQogICAgICAgICBA
X21haW5yZXQgPSAwOjpiaXRzMzI7CiAgICAgICAgIGdvdG8gQG1haW4wMDAwMDI1OwogICAg
ICAgICBAbWFpbjAwMDAwMTE6CiAgICAgICAgIGdvdG8gQG1haW4wMDAwMDEyOwogICAgICAg
ICBAbWFpbjAwMDAwMTI6CiAgICAgICAgIDsKICAgICAgICAgc3dpdGNoIFstMjE0NzQ4MzY0
ODo6Yml0czMyIC4uIDIxNDc0ODM2NDc6OmJpdHMzMl0gYml0czMyW0BfbWFpbl8xYV0KICAg
ICAgICAgewogICAgICAgICAgICBjYXNlIDE6OmJpdHMzMjogewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ290byBAbWFpbjAwMDAwMTQ7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgLTIxNDc0ODM2NDg6OmJpdHMzMiAuLiAwOjpi
aXRzMzIsIDI6OmJpdHMzMiAuLiAyMTQ3NDgzNjQ3OjpiaXRzMzI6IHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnb3RvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQG1haW4wMDAwMDE2OwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBAbWFpbjAwMDAwMTQ6CiAgICAgICAg
IDsKICAgICAgICAgQG1haW4wMDAwMDE1OgogICAgICAgICBAX21sY2NfZWFfX3RtcF9jZV8w
ID0gZm9yZWlnbiAiQyIgQHByaW50ZgogICAgICAgICAoQHN0cl9fZm9vX2RhXzI4OTU2NTQ3
Nl8xKTsKICAgICAgICAgQG1haW4wMDAwMDE2OgogICAgICAgICA7CiAgICAgICAgIEBtYWlu
MDAwMDAxNzoKICAgICAgICAgQF9tbGNjX2VhX190bXBfY2VfMSA9IGZvcmVpZ24gIkMiIEBw
cmludGYKICAgICAgICAgKEBzdHJfX2Zvb19kYV8yODk1NjU0NzZfMik7CiAgICAgICAgIGdv
dG8gQG1haW4wMDAwMDE5OwogICAgICAgICBAbWFpbjAwMDAwMTk6CiAgICAgICAgIDsKICAg
ICAgICAgZ290byBAbWFpbjAwMDAwMDQ7CiAgICAgICAgIEBtYWluMDAwMDAyNToKICAgICAg
ICAgOwogICAgICAgICBAbWFpbjAwMDAwMjY6CiAgICAgICAgIDsKICAgICAgICAgZm9yZWln
biAiQyIgcmV0dXJuIChAX21haW5yZXQpOwogICAgICB9CiAgIH0KfQ==
--------------000100010900000003070407
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Cminusminus mailing list
[email protected]
https://www.eecs.harvard.edu/mailman/listinfo/cminusminus

--------------000100010900000003070407--