> Well, I call it a convenience that MEM_EXPR, unlike INDIRECT_REF, can > be used to encapsulate an arbitrary byte-offset and view-conversion. Of > course it's still a dereference of an address so that convenience doesn't > work on sth non-addressable.
No discussion on the merits of MEM_EXPR vs INDIRECT_REF but on the pertinence of creating ADDR_EXPRs out of nowhere just to use them. > I'll leave that to you two to decide - Martins patch is ok if you are fine > with disabling the optimization (also removing an unused parameter). I'm fine with disabling it: the aggregate is passed directly so it's probably small and, in the case at hand, the optimized caller would do 2 extractions instead of only 1 so the gain is not obvious. -- Eric Botcazou