eppstein@garfield.columbia.edu.UUCP (09/13/87)
(1) The following program: int * foo() { return (1 ? 0 : foo); } gives the error "t1.c", line 3: internal <<cfront 05/20/86>> 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.