that particular error case is a type mismatch rather than an internal error. found when trying to compare a SEL with a string... oops :)

This is an imperfect revision of history.
This commit is contained in:
Bill Currie 2004-11-11 00:20:00 +00:00 committed by Jeff Teunissen
parent b35561504c
commit a97f74a6ac

View file

@ -434,7 +434,7 @@ do_op_pointer (int op, expr_t *e, expr_t *e1, expr_t *e2)
}
if (op != PAS && op != '.' && op != '&' && op != 'M'
&& extract_type (e1) != extract_type (e2))
internal_error (e);
type_mismatch (e1, e2, op);
if ((op == '.' || op == '&') && get_type (e2) == &type_uinteger) {
//FIXME should implement unsigned addressing
e->e.expr.e2 = cast_expr (&type_integer, e2);