Thanks a lot for the help! It looks like creating a temporary took care of it.
On Sat, Oct 17, 2009 at 7:41 AM, Richard Guenther <richard.guent...@gmail.com> wrote: > I think the call you insert is not of valid gimple form - an address > argument has to fulfill the is_gimple_min_invariant() predicate. > Thus I suspect you have something like &ptr->field in there which > needs a temporary. That was it. Actually, the TREE was of the form ADDR_EXPR(ARRAY_REF(STRING_CST)), which does not satisfy is_gimple_min_invariant(). The strange thing is, I copied that structure verbatim from unmodified GCC. I'm trying to insert a call that looks like: foo("some string constant"); If I put that function call in a simple C program and dump out the resulting GIMPLE, it gives me the ADDR_EXPR that was causing problems in refs_may_alias_p_1(). Does anyone know why that structure is ok in the contexts that GCC is using it but not in the context that my plug-in uses it in? --Justin