The code to scale ranges for wide chars in format_string incorrectly
checks range.likely to scale range.unlikely, which is a copy-paste typo
from the immediate previous condition.

gcc/ChangeLog:

        gimple-ssa-sprintf.cc (format_string): Fix type in range check
        for UNLIKELY for wide chars.

Signed-off-by: Siddhesh Poyarekar <siddh...@gotplt.org>
---
Tested on x86_64, no new testsuite regressions due to this fix.

 gcc/gimple-ssa-sprintf.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/gimple-ssa-sprintf.cc b/gcc/gimple-ssa-sprintf.cc
index 025b0fbff6f..0900710647c 100644
--- a/gcc/gimple-ssa-sprintf.cc
+++ b/gcc/gimple-ssa-sprintf.cc
@@ -2623,7 +2623,7 @@ format_string (const directive &dir, tree arg, 
pointer_query &ptr_qry)
          if (slen.range.likely < target_int_max ())
            slen.range.likely *= 2;
 
-         if (slen.range.likely < target_int_max ())
+         if (slen.range.unlikely < target_int_max ())
            slen.range.unlikely *= target_mb_len_max ();
 
          /* A non-empty wide character conversion may fail.  */
-- 
2.45.1

Reply via email to