This is the mail archive of the
mailing list for the GCC project.
Re: [C++ PATCH] Fix sanitization ICE (PR c++/80973)
- From: Jason Merrill <jason at redhat dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Nathan Sidwell <nathan at acm dot org>, gcc-patches List <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 9 Jun 2017 12:30:10 -0700
- Subject: Re: [C++ PATCH] Fix sanitization ICE (PR c++/80973)
- Authentication-results: sourceware.org; auth=none
- References: <20170608193018.GD2154@tucnak>
On Thu, Jun 8, 2017 at 12:30 PM, Jakub Jelinek <firstname.lastname@example.org> wrote:
> cp_genericize_r now instruments INTEGER_CSTs that have REFERENCE_TYPE,
> so that we can diagnose binding references to NULL in some cases,
> see PR79572. As the following testcase shows, there is one exception
> when we do not want to do that - in MEM_EXPR, the second operand
> is an INTEGER_CST whose value is an offset, but type is something
> unrelated - what should be used for aliasing purposes. So, that
> is something we do not want to diagnose, and it is also invalid IL,
> as the second argument has to be an INTEGER_CST, not some expression
> with side-effects.
> Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux,
> ok for trunk/7.x?
> PR c++/80973
> * cp-gimplify.c (cp_genericize_r): Don't instrument MEM_REF second
> argument even if it has REFERENCE_TYPE.
I wonder if we want to handle this in walk_tree_1, so all tree walks
by default avoid the second operand.