This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [C++/66270] another may_alias crash
- From: Jason Merrill <jason at redhat dot com>
- To: Nathan Sidwell <nathan at acm dot org>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 27 May 2015 12:20:21 -0400
- Subject: Re: [C++/66270] another may_alias crash
- Authentication-results: sourceware.org; auth=none
- References: <55638C4E dot 8040605 at acm dot org> <5563C9E9 dot 1070700 at redhat dot com> <5564C2DD dot 2030700 at acm dot org>
On 05/26/2015 03:00 PM, Nathan Sidwell wrote:
Ok, so IIUC a canonical pointer to a may_alias type should have TRCAA
but a canonical can_alias_all pointer to a non-may_alias type should not
have TRCAA? (i.e. one where CAN_ALIAS_ALL was passed true). Or are you
saying that no canonical pointers should have TRCAA?
The former: A canonical pointer should have TRCAA if and only if the
canonical referent is may_alias.
Hmm, are you seeing a case where TYPE_CANONICAL (to_type) has the
may_alias attribute?
Yes. This occurs when the newly created TRCAA pointer is to a
self-canonical type.
Hmm, seems like that's another problem with your testcase: the canonical
variant of __m256 should not have may_alias. But the canonical variant
of a class or enum type could still have may_alias, so we still need to
handle that case.
The patch is OK.
Jason