PR middle-end/87041 - -Wformat reading through null pointer on unreachable code
commit7b2ced2fa2c0597ba083461864c9026c3c9d3720
authormsebor <msebor@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Oct 2018 21:58:35 +0000 (30 21:58 +0000)
committermsebor <msebor@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Oct 2018 21:58:35 +0000 (30 21:58 +0000)
treed20422e7e859155af3641fb4809c1ccabcd62586
parentb07bf3b9730bebfc9953ea2eeee86a1274e39022
PR middle-end/87041 - -Wformat reading through null pointer on unreachable code

gcc/ChangeLog:

PR middle-end/87041
* gimple-ssa-sprintf.c (format_directive): Use %G to include
inlining context.
(sprintf_dom_walker::compute_format_length):
Avoid setting POSUNDER4K here.
(get_destination_size): Handle null argument values.
(get_user_idx_format): New function.
(sprintf_dom_walker::handle_gimple_call): Handle all printf-like
functions, including user-defined with attribute format printf.
Use %G to include inlining context.
Set POSUNDER4K here.

gcc/c-family/ChangeLog:

PR middle-end/87041
* c-format.c (check_format_types): Avoid diagnosing null pointer
arguments to printf-family of functions.

gcc/testsuite/ChangeLog:

PR middle-end/87041
* gcc.c-torture/execute/fprintf-2.c: New test.
* gcc.c-torture/execute/printf-2.c: Same.
* gcc.c-torture/execute/user-printf.c: Same.
* gcc.dg/tree-ssa/builtin-fprintf-warn-1.c: Same.
* gcc.dg/tree-ssa/builtin-printf-2.c: Same.
* gcc.dg/tree-ssa/builtin-printf-warn-1.c: Same.
* gcc.dg/tree-ssa/user-printf-warn-1.c: Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265648 138bc75d-0d04-0410-961f-82ee72b054a4
12 files changed:
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-format.c
gcc/gimple-ssa-sprintf.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/fprintf-2.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/printf-2.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/user-printf.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-warn-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-warn-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/user-printf-warn-1.c [new file with mode: 0644]