Interprocedural alias analysis

Hello,

I need interprocedural alias analysis while I’m using GVN for infeasible path
analysis. So, I’ve tried “-steens-aa” from poolalloc project, but it doesn’t seem
to be working as I expected. For example,

int global;

int bar(void) {
return 5;
}

int foo(void) {
int a;
scanf("%d", &a);
if(global)
a = bar();
return a;
}

In this case, I expected getModRefInfo() on the load instruction for ‘global’ and
the call instruction for ‘bar()’ in foo() yields “NoModRef”, but it actually give “ModRef”.

Am I understanding ‘interprocedural’ in wrong way? or making any mistake?
Or does ‘-steens-aa’ have any problem?

I’m also curious if there is any ongoing project or plan to implement or improve
interprocedural alias analysis.

Thank you very much in advance.

Bests,
Hyoun Kyu Cho