mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-17 01:11:45 +00:00
use ev_type_count instead of ev_void for bad types so things like void
functions being used in expressions don't cause ICEs
This commit is contained in:
parent
06b9f44741
commit
d9cde786b3
1 changed files with 6 additions and 4 deletions
|
@ -74,7 +74,7 @@ get_type (expr_t *e)
|
|||
switch (e->type) {
|
||||
case ex_label:
|
||||
case ex_block:
|
||||
return ev_void;
|
||||
return ev_type_count;
|
||||
case ex_expr:
|
||||
case ex_uexpr:
|
||||
return e->e.expr.type->type;
|
||||
|
@ -91,7 +91,7 @@ get_type (expr_t *e)
|
|||
case ex_integer:
|
||||
return qc_types[e->type];
|
||||
}
|
||||
return ev_void;
|
||||
return ev_type_count;
|
||||
}
|
||||
|
||||
expr_t *
|
||||
|
@ -629,9 +629,11 @@ test_expr (expr_t *e, int test)
|
|||
|
||||
switch (get_type (e)) {
|
||||
case ev_type_count:
|
||||
case ev_void:
|
||||
error (e, "internal error");
|
||||
abort ();
|
||||
case ev_void:
|
||||
error (e, "void has no value");
|
||||
break;
|
||||
case ev_string:
|
||||
new = new_expr ();
|
||||
new->type = ex_string;
|
||||
|
@ -694,7 +696,7 @@ binary_expr (int op, expr_t *e1, expr_t *e2)
|
|||
|
||||
t1 = get_type (e1);
|
||||
t2 = get_type (e2);
|
||||
if (t1 == ev_void || t2 == ev_void) {
|
||||
if (t1 == ev_type_count || t2 == ev_type_count) {
|
||||
error (e1, "internal error");
|
||||
abort ();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue