As an extension, GCC allows labels to be referenced a la label1: ... void *ptr = &&label1; Tag these label references as being address constants allowing them to be used as initializers for objects of static storage duration. Signed-off-by: Nicolai Stange <nicstange@xxxxxxxxx> --- expression.c | 1 + 1 file changed, 1 insertion(+) diff --git a/expression.c b/expression.c index afc4f39..b82a036 100644 --- a/expression.c +++ b/expression.c @@ -683,6 +683,7 @@ static struct token *unary_expression(struct token *token, struct expression **t sym->ctype.modifiers |= MOD_ADDRESSABLE; add_symbol(&function_computed_target_list, sym); } + expr_set_flag(&label->flags, EXPR_FLAG_ADDR_CONST_EXPR); label->label_symbol = sym; *tree = label; return token->next->next; -- 2.7.0 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html