V10/cmd/cfront/cfront/expr.patch

*** /usr/src/cmd/cfront/cfront/expr.c	Thu May 10 11:31:31 1990
--- expr.c	Mon Aug 27 10:27:47 1990
***************
*** 751,770
  	//	if (t2->is_cl_obj()) t2->tsizeof();
  	}
  	else 
  		t2 = 0;
  
  //error('d',"b %k t1 %t t2 %t",b,t1,t2);
  	switch (b) {	// filter out non-overloadable operators
  	default:
  	{	Pexpr x = try_to_overload(tbl);
  		if (x) return x;
  	}
  	case DOT:
  	case G_CM:
  	case G_ADDROF:
  	case G_CALL:
  	case QUEST:
  		break;
  	}
  
  	switch (b) {

--- 751,771 -----
  	//	if (t2->is_cl_obj()) t2->tsizeof();
  	}
  	else 
  		t2 = 0;
  
  //error('d',"b %k t1 %t t2 %t",b,t1,t2);
  	switch (b) {	// filter out non-overloadable operators
  	default:
  	{	Pexpr x = try_to_overload(tbl);
  		if (x) return x;
+ 		if (t2 && t1==0 && t2!=e2->tp) t2 = e2->tp;
  	}
  	case DOT:
  	case G_CM:
  	case G_ADDROF:
  	case G_CALL:
  	case QUEST:
  		break;
  	}
  
  	switch (b) {