diff --git a/libs/gamecode/pr_opcode.c b/libs/gamecode/pr_opcode.c index 8206e1e7b..6350d04ca 100644 --- a/libs/gamecode/pr_opcode.c +++ b/libs/gamecode/pr_opcode.c @@ -847,7 +847,7 @@ VISIBLE opcode_t pr_opcodes[] = { "%Ga", }, {"", "jumpb", OP_JUMPB, false, - ev_integer, ev_integer, ev_invalid, + ev_void, ev_integer, ev_invalid, PROG_VERSION, "%Ga[%Gb]", }, diff --git a/tools/qfcc/source/statements.c b/tools/qfcc/source/statements.c index 62fb30171..dd4197146 100644 --- a/tools/qfcc/source/statements.c +++ b/tools/qfcc/source/statements.c @@ -418,6 +418,8 @@ statement_get_targetlist (statement_t *s) } else if (statement_is_goto (s)) { target_list[0] = statement_get_target (s); } else if (statement_is_jumpb (s)) { + if (table->alias) + internal_error (0, "aliased jump table"); e = table->initializer->e.block.head; //FIXME check!!! for (i = 0; i < count; e = e->next, i++) target_list[i] = e->e.labelref.label->dest; diff --git a/tools/qfcc/source/switch.c b/tools/qfcc/source/switch.c index ae8a7a46a..f74fe762d 100644 --- a/tools/qfcc/source/switch.c +++ b/tools/qfcc/source/switch.c @@ -345,7 +345,6 @@ build_switch (expr_t *sw, case_node_t *tree, int op, expr_t *sw_val, initialize_def (table_sym, array_type (&type_integer, high - low + 1), table_init, pr.near_data, sc_static); table_expr = new_symbol_expr (table_sym); - table_expr = new_alias_expr (&type_integer, table_expr); if (tree->left) { branch = branch_expr (IFB, temp, low_label);