From: Martin Sebor <msebor@gmail.com>
To: Gcc Patch List <gcc-patches@gcc.gnu.org>,
Jakub Jelinek <jakub@redhat.com>
Subject: Re: [PATCH] correct -Wrestrict handling of arrays of arrays (PR 84095)
Date: Fri, 09 Feb 2018 02:46:00 -0000 [thread overview]
Message-ID: <0e539065-8e8b-8a4a-45b3-c0f251732797@gmail.com> (raw)
In-Reply-To: <ddd30be9-e153-9ff9-bad8-59aab24b6256@gmail.com>
Ping: https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00076.html
On 02/01/2018 04:45 PM, Martin Sebor wrote:
> The previous patch didn't resolve all the false positives
> in the Linux kernel. The attached is an update that fixes
> the remaining one having to do with multidimensional array
> members:
>
> struct S { char a[2][4]; };
>
> void f (struct S *p, int i)
> {
> strcpy (p->a[0], "012");
> strcpy (p->a[i] + 1, p->a[0]); // false positive here
> }
>
> In the process of fixing this I also made a couple of minor
> restructuring changes to the builtin_memref constructor to
> in order to make the code easier to follow: I broke it out
> into a couple of helper functions and called those.
>
> As with the first revision of the patch, this one is also
> meant to be applied on top of
>
> https://gcc.gnu.org/ml/gcc-patches/2018-01/msg01488.html
>
> Sorry about the late churn. Even though I tested the original
> implementation with the Linux kernel the bugs were only exposed
> non-default configurations that I didn't build.
>
> Jakub, you had concerns about the code in the constructor
> and about interpreting the offsets in the diagnostics.
> I tried to address those in the patch. Please review
> the changes and let me know if you have any further comments.
>
> Thanks
> Martin
>
> On 01/30/2018 04:19 PM, Martin Sebor wrote:
>> Testing GCC 8 with recent Linux kernel sources has uncovered
>> a bug in the handling of arrays of arrays by the -Wrestrict
>> checker where it fails to take references to different array
>> elements into consideration, issuing false positives.
>>
>> The attached patch corrects this mistake.
>>
>> In addition, to make warnings involving excessive offset bounds
>> more meaningful (less confusing), I've made a cosmetic change
>> to constrain them to the bounds of the accessed object. I've
>> done this in response to multiple comments indicating that
>> the warnings are hard to interpret. This change is meant to
>> be applied on top of the patch for bug 83698 (submitted mainly
>> to improve the readability of the offsets):
>>
>> https://gcc.gnu.org/ml/gcc-patches/2018-01/msg01488.html
>>
>> Martin
>
next prev parent reply other threads:[~2018-02-09 2:46 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-30 23:37 Martin Sebor
2018-02-01 23:45 ` Martin Sebor
2018-02-09 2:46 ` Martin Sebor [this message]
2018-02-14 6:14 ` Jeff Law
2018-02-15 17:48 ` Martin Sebor
2018-02-16 23:39 ` Jeff Law
2018-02-23 3:17 ` Siddhesh Poyarekar
2018-02-23 15:52 ` Martin Sebor
2018-02-23 16:19 ` Siddhesh Poyarekar
2018-02-23 16:49 ` Jakub Jelinek
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=0e539065-8e8b-8a4a-45b3-c0f251732797@gmail.com \
--to=msebor@gmail.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jakub@redhat.com \
/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).