It's not possible to produce a valid & correct IR if the function contains a goto to an undeclared label. So, try to catch these situations and mark the function as such, the linearization will then simply ignore it. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- evaluate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/evaluate.c b/evaluate.c index dc66b2e6ad9a..14953f195fcc 100644 --- a/evaluate.c +++ b/evaluate.c @@ -3749,6 +3749,7 @@ static void evaluate_goto_statement(struct statement *stmt) if (label->namespace == NS_LABEL && !label->stmt) { sparse_error(stmt->pos, "label '%s' was not declared", show_ident(label->ident)); + current_fn->bogus_linear = 1; } } -- 2.26.0