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.