On 19/05/2020 01:57, Luc Van Oostenryck wrote: > Issue an error when taking the address of an undeclared label > and mark the mark the function as improper for linearization s/mark the mark the/mark the/ ATB, Ramsay Jones > since the resulting IR would be invalid. > > Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> > --- > evaluate.c | 1 + > validation/label-scope-cgoto.c | 1 - > validation/linear/label-scope-cgoto.c | 1 - > 3 files changed, 1 insertion(+), 2 deletions(-) > > diff --git a/evaluate.c b/evaluate.c > index b272e3f642b2..63d75d9031d1 100644 > --- a/evaluate.c > +++ b/evaluate.c > @@ -3344,6 +3344,7 @@ struct symbol *evaluate_expression(struct expression *expr) > > case EXPR_LABEL: > expr->ctype = &ptr_ctype; > + check_label_declaration(expr->pos, expr->label_symbol); > return &ptr_ctype; > > case EXPR_TYPE: > diff --git a/validation/label-scope-cgoto.c b/validation/label-scope-cgoto.c > index c5d278d3d654..1edb9948d8cf 100644 > --- a/validation/label-scope-cgoto.c > +++ b/validation/label-scope-cgoto.c > @@ -65,7 +65,6 @@ l: 1; > /* > * check-name: label-scope-cgoto > * check-command: sparse -Wno-decl $file > - * check-known-to-fail > * > * check-error-start > label-scope-cgoto.c:12:19: error: label 'l' used outside statement expression > diff --git a/validation/linear/label-scope-cgoto.c b/validation/linear/label-scope-cgoto.c > index 592f1ce4f664..0eba05aea3c7 100644 > --- a/validation/linear/label-scope-cgoto.c > +++ b/validation/linear/label-scope-cgoto.c > @@ -3,7 +3,6 @@ > /* > * check-name: linear/label-scope-cgoto > * check-command: test-linearize -Wno-decl -I. $file > - * check-known-to-fail > * > * check-error-ignore > * check-output-ignore >