[comp.lang.c++] cfront 2.0 bug 900321_02

rfg@paris.ics.uci.edu (Ronald Guilmette) (03/22/90)

// cfront 2.0 bug 900321_02

// The following code causes cfront 2.0 to generate blatantly invalid C
// code.  (I say "blatant" because it is not a question of ANSI vs.
// non-ANSI C or anything like that.  It is just plain wrong.)

// The problem is that the mangled names of these pairs of function
// definitions conflict (i.e. each pair shown below mangles to the same
// mangled-name).

// g++ manages to avoid getting into this kind of trouble by simply
// disallowing such pairs of function definitions.  I believe that these
// should be allowed, and that the cfront 2.0 implementation just needs a
// bit of fixing (but that's just one man's opinion).

struct s;
typedef struct s T;
typedef T array_of_Ts[];

void function_0 (T*          *) { }
void function_0 (array_of_Ts *) { }

void function_1 (T*          &) { }
void function_1 (array_of_Ts &) { }

int main () { return 0; }


// Ron Guilmette (rfg@ics.uci.edu)
// C++ Entomologist
// Motto:  If it sticks, force it.  If it breaks, it needed replacing anyway.