https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77735

--- Comment #8 from Martin Sebor <msebor at gcc dot gnu.org> ---
Author: msebor
Date: Mon Oct 24 16:53:20 2016
New Revision: 241489

URL: https://gcc.gnu.org/viewcvs?rev=241489&root=gcc&view=rev
Log:
PR middle-end/77735 - FAIL: gcc.dg/tree-ssa/builtin-sprintf-warn-1.c

gcc/ChangeLog:

        PR middle-end/77735
        * builtins.c (string_length): New function.
        (c_strlen): Use string_length.  Correctly handle wide strings.
        * gimple-ssa-sprintf.c (target_max_value, target_size_max): New
        functions.
        (target_int_max): Call target_max_value.
        (format_result::knownrange): New data member.
        (fmtresult::fmtresult): Define default constructor.
        (format_integer): Use it and set format_result::knownrange.
        Handle global constants.
        (format_floating_max): Add third argument.
        (format_floating): Recompute maximum value for %a for each argument.
        (get_string_length): Use fmtresult default ctor.
        (format_string): Set format_result::knownrange.
        (format_directive): Check format_result::knownrange.
        (add_bytes): Same.  Correct caret placement in diagnostics.
        (pass_sprintf_length::compute_format_length): Set
        format_result::knownrange.
        (pass_sprintf_length::handle_gimple_call): Use target_size_max.

gcc/testsuite/ChangeLog:

        PR middle-end/77735
        * gcc.dg/tree-ssa/builtin-sprintf-2.c: Add test cases.
        * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Same.
        * gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Same.
        * gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Adjust/relax.
        * gcc.dg/tree-ssa/builtin-sprintf-warn-4.c: Add test cases.
        * gcc.dg/tree-ssa/builtin-sprintf-warn-6.c: XFAIL for LP64 only.
        * gcc.dg/tree-ssa/builtin-sprintf.c: Add test cases.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/builtins.c
    trunk/gcc/gimple-ssa-sprintf.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-2.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-3.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-4.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-6.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf.c

Reply via email to