Hi,

On Wed, 20 Jun 2012, Richard Guenther wrote:

> > +  exp = fold_build2 (MEM_REF,
> > +                    build_array_type (char_type_node,
> > +                                      build_range_type (sizetype,
> > +                                                        size_one_node, 
> > len)),
> > +                    exp, build_int_cst (ptr_type_node, 0));
> > +
> > +  /* If the MEM_REF has no acceptable address, try to get the base object,
> > +     and build an all-aliasing unknown-sized access to that one.  */
> > +  if (!is_gimple_mem_ref_addr (TREE_OPERAND (exp, 0))
> > +      && (exp = get_base_address (exp)))
> 
> The get_base_address massaging should be not necessary if you'd
> use the original exp here, not the built MEM_REF.

Hmm?  The original expression is an address, I have to build a MEM_REF out 
of that, and the is_gimple_mem_ref_addr() just checked that that very 
address (after going through fold) is not acceptable as MEM_REF operand.  
So how could I avoid the massaging of the address to make it an acceptable 
operand?


Ciao,
Michael.

Reply via email to