Hello.

external_declaration():

        if (match_idents(token, &asm_ident ...) {
                stmt = start_function(anon);
                token = parse_asm(token->next, stmt);
        }

However, start_function does:

        stmt->ret = alloc_symbol(sym->pos, SYM_NODE);

and this ->ret overlaps with smtm->asm_inputs, so

        parse_asm
                parse_asm_operands(&stmt->asm_inputs)
                        add_ptr_list(&stmt->asm_inputs, ...)

segfaults with this input:

__asm__ (:: "r"(0));

Oleg.
-
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to