Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- verify-format.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/verify-format.c b/verify-format.c index 95ff524c03cf..b27440b87c6b 100644 --- a/verify-format.c +++ b/verify-format.c @@ -77,7 +77,7 @@ static int printf_fmt_string(struct format_type *fmt, struct symbol *ctype, struct symbol **target, const char **typediff) { - *target = &const_string_ctype; + *target = fmt->type; return check_assignment_types(*target, expr, typediff); } @@ -130,6 +130,7 @@ static struct format_type *parse_printf_get_fmt(struct format_type *type, if (*ptr == 's') { ptr++; type->test = printf_fmt_string; + type->type = &const_string_ctype; } else if (*ptr == 'c') { ptr++; type->test = printf_fmt_numtype; @@ -231,6 +232,10 @@ static struct format_type *parse_printf_get_fmt(struct format_type *type, type->test = printf_fmt_numtype; type->type = szmod == 1 ? &ldouble_ctype : &double_ctype; ptr++; + } else if (*ptr == 's') { + type->test = printf_fmt_string; + type->type = &const_wstring_ctype; + ptr++; } else if (*ptr == 'n') { /* pointer to an de-referenced int/etc */ // todo - we should construct pointer to int/etc // // also should not have any flags or widths for this -- 2.28.0