Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!columbia!garfield.columbia.edu!eppstein From: eppstein@garfield.columbia.edu.UUCP Newsgroups: comp.lang.c++ Subject: some bugs Message-ID: <4994@columbia.edu> Date: Sat, 12-Sep-87 17:13:33 EDT Article-I.D.: columbia.4994 Posted: Sat Sep 12 17:13:33 1987 Date-Received: Sun, 13-Sep-87 08:48:48 EDT Sender: nobody@columbia.edu Organization: Columbia University CS Department Lines: 51 (1) The following program: int * foo() { return (1 ? 0 : foo); } gives the error "t1.c", line 3: internal <> error: zero( 108) (obviously there should be an error message but not that one). ------------ ------------ (2) The following program: void foo(int a) { switch (a) { case 1: if (a) { foo(0); static const char * s = 0; } } } gives the error "t2.c", line 7: sorry, not implemented: non trivial declaration in switch statement (try enclosing it in a block) If I do as it says the error goes away, but it's already enclosed in the block of the if statement and shouldn't need another. ------------ ------------ (3) I have a large program in which cfront mysteriously changes the expected type of the first argument of one of my member functions from (my_class &) to (ostream *); thus I get an error when I call it the way I expected rather than the new way cfront expects. At one point with a slightly different version of the code it instead changed it to (char[3]). This happens between two successive uses of the function (i.e. the first call from within the previous function gets through without complaint); not much happens between the two calls. Is this a known bug? If not I can mail a copy of the code itself, but it's pretty long and currently pretty rough. I don't know how to make this one into a small test program like the other two above. -- David Eppstein, eppstein@cs.columbia.edu, Columbia U. Computer Science Dept.