This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: dce3 botch with c41203a ACATS test
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: dnovillo at redhat dot com
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 30 Jul 04 11:53:36 EDT
- Subject: Re: dce3 botch with c41203a ACATS test
Thanks very much for looking at this and fixing it! I'm curious how many
of the other test cases are being taken out by this bug. I'll know soon.
Indeed. This was a bug in the type based alias analyzer. The test case
is taking the address of an array, so we create a type tag that has an
array type, but then we go on to compute the alias set of the elements
of the array. So, we fail to match that type tag with T.7.
Ah! Is the code taking into account the DECL_NONADDRESSABLE_P flag
for field and TYPE_NONALIASED_COMPONENT? Those flags are only use by
Ada but affect whether the elements should be viewed in a separate alias
set when they are accessed individually. Also, might this be a case
where ARRAY_REF (which access an element) and ARRAY_RANGE_REF (which
access an array) need to be treated differently but aren't?
Kenner, was this program part of the Ada test suite?
Yes, it is, as the subject indicates.
I can't seem to trigger this in other languages.
That's what makes me think it's related to the ARRAY_RANGE_REF (which
really shouldn't be there, but that's also not a correctness problem,
though it's an efficiency issue that's on my list).