Richard,
First off I did suspect INDIRECT_REF wasn't supported, thanks for
confirming that.
I tried what you said in the original code before I posted
but I suspect how I went at it is the problem. I'm probably
doing something(s) in a glaringly stupid way.
Can you spot it, because everything I'm doing makes total sense
to me?
Thanks Gary
--
Snippet from the code with MEM_REF:
tree lhs_ref = build1 ( MEM_REF, field_type, field_addr);
final_set = gimple_build_assign( lhs_ref, field_val_temp);
field_type is a double *
field_addr is an address within an malloced array of doubles.
--
Snippet from the code with ARRAY_REF:
tree rhs_ref = build4 ( ARRAY_REF, field_type, field_arry_addr, index,
NULL_TREE, NULL_TREE);
temp_set = gimple_build_assign( field_val_temp, rhs_ref);
field type is double
field_arry_addr is the starting address of an array of malloced doubles.
index is a pointer_rep (an integer)
details:
tree pointer_rep = make_node ( INTEGER_TYPE);
TYPE_PRECISION (pointer_rep) = TYPE_PRECISION (pointer_sized_int_node);