public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Renlin Li <renlin.li@foss.arm.com>
To: Martin Sebor <msebor@gmail.com>,
	Christophe Lyon <christophe.lyon@linaro.org>
Cc: Andreas Schwab <schwab@linux-m68k.org>, Jeff Law <law@redhat.com>,
	Jakub Jelinek <jakub@redhat.com>,
	Joseph Myers <joseph@codesourcery.com>,
	Gcc Patch List <gcc-patches@gcc.gnu.org>
Subject: Re: [PATCH] have -Wformat-overflow handle -fexec-charset (PR 80503)
Date: Tue, 20 Jun 2017 11:00:00 -0000	[thread overview]
Message-ID: <5949003D.4000305@foss.arm.com> (raw)
In-Reply-To: <593F9F56.1080405@foss.arm.com>

Hi Martin,

I did a little investigation into this. Please correct me if I missed anything.

I build a native arm-linux-gnueabihf toolchain in armhf hardware.
It's ILP32. So in this situation:

HOST_WIDE_INT is long, which is 32-bit.
integer type 32-bit as well, so target_int_max () == LONG_MAX


gimple-ssa-sprintf.c line 2887
>   /* Has the likely and maximum directive output exceeded INT_MAX?  */
>   bool likelyximax = *dir.beg && res->range.likely > target_int_max ();

likelyximax will be false as the latter expression is always false.
res->range.likely is truncated to LONG_MAX (in target_strtol10 function)

I have checked in cross build environment (host x86_64), this variable is true.

Regards,
Renlin


On 13/06/17 09:16, Renlin Li wrote:
> Hi Martin,
>
> On 04/06/17 23:24, Martin Sebor wrote:
>> On 06/02/2017 09:38 AM, Renlin Li wrote:
>>> Hi Martin,
>>>
>>> After r247444, I saw the following two regressions in
>>> arm-linux-gnueabihf environment:
>>>
>>> FAIL: gcc.dg/tree-ssa/builtin-sprintf-warn-18.c  (test for warnings,
>>> line 119)
>>> PASS: gcc.dg/tree-ssa/builtin-sprintf-warn-18.c  (test for warnings,
>>> line 121)
>>> FAIL: gcc.dg/tree-ssa/builtin-sprintf-warn-18.c  (test for warnings,
>>> line 121)
>>>
>>> The warning message related to those two lines are:
>>> testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:119:3: warning:
>>> '%9223372036854775808i' directive width out of range [-Wformat-overflow=]
>>>
>>> testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:121:3: warning:
>>> '%.9223372036854775808i' directive precision out of range
>>> [-Wformat-overflow=]
>>>
>>> testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:121:3: warning:
>>> '%.9223372036854775808i' directive precision out of range
>>> [-Wformat-overflow=]
>>>
>>> Did you notice similar things from your test environment, Christophe?
>>
>> Looks like you're missing a couple of warnings.  I see the following
>> output with both my arm-linux-gnueabihf cross compiler and my native
>> x86_64 GCC, both in 32-bit and 64-bit modes, as expected by the test,
>> so I don't see the same issue in my environment.
>
> Yes, it happens on arm-linux-gnueabihf native environment. the warnings with "INT_MAX"
> line are missing. I don't know if the host environment will cause the difference.
>
> Regards,
> Renlin
>
>>
>> /ssd/src/gcc/git/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:119:3: warning:
>> ‘%9223372036854775808i’ directive width out of range [-Wformat-overflow=]
>>     T ("%9223372036854775808i", 0);    /* { dg-warning "width out of range" } */
>>     ^
>> /ssd/src/gcc/git/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:119:3: warning:
>> ‘%9223372036854775808i’ directive output of 9223372036854775807 bytes causes result to
>> exceed ‘INT_MAX’ [-Wformat-overflow=]
>> /ssd/src/gcc/git/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:121:3: warning:
>> ‘%.9223372036854775808i’ directive precision out of range [-Wformat-overflow=]
>>     T ("%.9223372036854775808i", 0);   /* { dg-warning "precision out of range" } */
>>     ^
>> /ssd/src/gcc/git/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-18.c:121:3: warning:
>> ‘%.9223372036854775808i’ directive output of 9223372036854775807 bytes causes result to
>> exceed ‘INT_MAX’ [-Wformat-overflow=]
>>
>> Martin

  reply	other threads:[~2017-06-20 11:00 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-26 22:27 Martin Sebor
2017-04-27  3:39 ` Joseph Myers
2017-04-27  5:07   ` Jakub Jelinek
2017-04-27 22:52     ` Martin Sebor
2017-04-28 16:35       ` Jeff Law
2017-04-28 16:37         ` Jakub Jelinek
2017-04-28 17:05           ` Jeff Law
2017-04-28 18:32         ` Martin Sebor
2017-04-28 19:14           ` Jeff Law
2017-04-29 20:44           ` Andreas Schwab
2017-05-03 14:35             ` Christophe Lyon
2017-05-03 15:02               ` Martin Sebor
2017-05-03 15:24                 ` Christophe Lyon
2017-06-02 15:38                   ` Renlin Li
2017-06-04 22:24                     ` Martin Sebor
2017-06-13  8:16                       ` Renlin Li
2017-06-20 11:00                         ` Renlin Li [this message]
2018-01-31 17:57                           ` Renlin Li
2018-02-01  0:41                             ` Martin Sebor
2018-02-01 11:54                               ` Renlin Li
2018-02-01 18:27                                 ` Martin Sebor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5949003D.4000305@foss.arm.com \
    --to=renlin.li@foss.arm.com \
    --cc=christophe.lyon@linaro.org \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jakub@redhat.com \
    --cc=joseph@codesourcery.com \
    --cc=law@redhat.com \
    --cc=msebor@gmail.com \
    --cc=schwab@linux-m68k.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).