X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=format_check.c;h=f572d145a4595c644ce64bf1db395b0cec75525e;hb=2058211f61e90b3acfcce898516274e84c314c8b;hp=d5ea272c1fb7225ed6a4e4e7877017d13008c5b1;hpb=fe9aa8a20c3fc2be53a9486916d4d25db76e7368;p=cparser diff --git a/format_check.c b/format_check.c index d5ea272..f572d14 100644 --- a/format_check.c +++ b/format_check.c @@ -356,7 +356,7 @@ break_fmt_flags: break; } - const type_t *expected_type; + type_t *expected_type; type_qualifiers_t expected_qual = TYPE_QUALIFIER_NONE; format_flags_t allowed_flags; switch (fmt) { @@ -521,11 +521,12 @@ eval_fmt_mod_unsigned: } { /* create a scope here to prevent warning about the jump to next_arg */ - type_t *const arg_type = arg->expression->base.type; - if (is_type_pointer(expected_type)) { + type_t *const arg_type = arg->expression->base.type; + type_t *const expected_type_skip = skip_typeref(expected_type); + if (is_type_pointer(expected_type_skip)) { type_t *const arg_skip = skip_typeref(arg_type); if (is_type_pointer(arg_skip)) { - type_t *const exp_to = skip_typeref(expected_type->pointer.points_to); + type_t *const exp_to = skip_typeref(expected_type_skip->pointer.points_to); type_t *const arg_to = skip_typeref(arg_skip->pointer.points_to); if ((arg_to->base.qualifiers & ~expected_qual) == 0 && get_unqualified_type(arg_to) == exp_to) { @@ -533,7 +534,7 @@ eval_fmt_mod_unsigned: } } } else { - if (get_unqualified_type(skip_typeref(arg_type)) == expected_type) { + if (get_unqualified_type(skip_typeref(arg_type)) == expected_type_skip) { goto next_arg; } }