Re: format string is not a string literal

Andrew Pinski <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CA+=Sn1kwaPGMeTVL1DOqgUgwX+jD92NvdB5SpXSG5xqiK8NtCg@mail.gmail.com>
On Tue, Feb 24, 2015 at 9:13 AM, Jack Howarth
<[email protected]> wrote:
>    Building gdb 7.9 on x86_64-apple-darwin14 produces a number of
> warnings from -Wformat-nonliteral...
>
> darwin-nat.c:184:23: warning: format string is not a string literal
> [-Wformat-nonliteral]
>   vprintf_unfiltered (fmt, ap);
>                       ^~~

Looks like a clang bug because vprintf takes a format and an va_arg
type which means there is no way to tell what the format is going to
look into.
Looks like all are the same clang bug.
Please file a bug with Apple and/or LLVM about this bring broken.

>
> remote.c:6986:37: warning: format string is not a string literal
> [-Wformat-nonliteral]
>   if (vsnprintf (rs->buf, max_size, format, ap) >= max_size)
>                                     ^~~~~~
> /usr/include/secure/_stdio.h:75:63: note: expanded from macro 'vsnprintf'
>   __builtin___vsnprintf_chk (str, len, 0, __darwin_obsz(str), format, ap)
>                                                               ^


See how they even warn about their own header too.


Thanks,
Andrew

> ctf.c:109:39: warning: format string is not a string literal
> [-Wformat-nonliteral]
>   if (vfprintf (handler->metadata_fd, format, args) < 0)
>                                       ^~~~~~
>
> ./guile/scm-string.c:70:25: warning: format string is not a string
> literal [-Wformat-nonliteral]
>   string = xstrvprintf (format, args);
>                         ^~~~~~
>
> ./guile/scm-utils.c:86:25: warning: format string is not a string
> literal [-Wformat-nonliteral]
>   string = xstrvprintf (format, args);
>                         ^~~~~~
>
> auto-load.c:486:40: warning: format string is not a string literal
> [-Wformat-nonliteral]
>       vfprintf_unfiltered (gdb_stdlog, debug_fmt, debug_args);
>                                        ^~~~~~~~~
>
> complaints.c:188:10: warning: format string is not a string literal
> [-Wformat-nonliteral]
>                        complaint->fmt, args);
>                        ^~~~~~~~~~~~~~
> complaints.c:195:12: warning: format string is not a string literal
> [-Wformat-nonliteral]
>         vwarning (complaint->fmt, args);
>                   ^~~~~~~~~~~~~~
> complaints.c:200:23: warning: format string is not a string literal
> [-Wformat-nonliteral]
>           msg = xstrvprintf (complaint->fmt, args);
>                              ^~~~~~~~~~~~~~
>
> ./compile/compile-object-load.c:235:22: warning: format string is not
> a string literal [-Wformat-nonliteral]
>   str = xstrvprintf (fmt, ap);
>                      ^~~
> ./compile/compile-loc2c.c:453:30: warning: format string is not a
> string literal [-Wformat-nonliteral]
>   vfprintf_filtered (stream, format, args);
>                              ^~~~~~
> ./compile/compile-loc2c.c:470:30: warning: format string is not a
> string literal [-Wformat-nonliteral]
>   vfprintf_filtered (stream, format, args);
>                              ^~~~~~
> ./compile/compile-loc2c.c:485:30: warning: format string is not a
> string literal [-Wformat-nonliteral]
>   vfprintf_filtered (stream, format, args);
>                              ^~~~~~
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.