Many places in the expander currently assume that the first operand of an ARRAY_REF has ARRAY_TYPE. We would need to add support for operands of POINTER_TYPE. A simpler change would be to allow building ARRAY_REFs from INDIRECT_REFs to arrays. AFAIK that would only involve a one-line change in each (C/C++) front end. Jason