Memory aliasing

Hi,

Would someone please show me how, by the means provided by the llvm library, to establish
that ( in the clang-generated IR file ) ‘foo1’ is not affected by ‘foo’:

extern double d[3];

attribute((noinline))
double foo1()
{

return d[2];

}

void foo()
{

d[1] += foo1();

}

Needless to say that I tried to use SSA-derived functionality but couldn’t get anything useful.

Thank you,

David Livshin
www.dalsoft.com