> + switch (op->opcode) > + { > > ... > > + case ARRAY_RANGE_REF: > + case ARRAY_REF: > + *op0_p = build4 (ARRAY_REF, op->type, NULL_TREE, > + op->op0, op->op1, op->op2); > + op0_p = &TREE_OPERAND (*op0_p, 0); > + break; Maybe build4 (op->opcode)? (Did you test Ada)? Paolo