On 06/10/2011 04:35 AM, Richard Guenther wrote:
I'm out of good suggestions ;)  You can do the same-qualifier matching
and simply have a mismatched array element vs. array-ref type.

But I need to allow different qualifiers, too.

We could also argue that whoever calls fold_indirect_ref_1 with TYPE
that doesn't even have TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (op0 (!)))
== TYPE_MAIN_VARIANT (type) is broken.

Right, I only want to fold if the main variants match.

Thus we could argue that
even ignoring qualifiers is ok - but I'd be worried about folding
*((volatile int *)&a[0] + 1) to a[1] with lost volatile qualification.

Right.

It would be correct to fold it to

VIEW_CONVERT_EXPR<volatile int,a[1]>

but I'm not sure how well front ends would deal with that. Maybe I'll try it and see.

Jason

Reply via email to