Hello everyone,
I am trying to understand the points-to analysis ("pta") ipa pass, but
I am not able to match the information generated by the pass and that
in structure "SSA_NAME_PTR_INFO".
For the code segment,
----------------------------------------------
int var1, var2, var3, var4, *ptr1, *ptr2, **ptr3;
if (var1==10) {
ptr1 = &var1;
ptr2 = &var2;
}
else {
ptr1 = &var3;
ptr2 = &var4;
}
if (var2==3) {
ptr3 = &ptr1;
}
else {
ptr3 = &ptr2;
}
printf("\n %d %d \n",*ptr1, **ptr3);
----------------------------------------------
The points-to information in dump_file of "pta" pass:
ptr1.2_6 = { var1 var3 }
ptr1 = { var1 var3 } same as ptr1.2_6
But accessing the structure "SSA_NAME_PTR_INFO" (using API
dump_points_to_info_for(..) ) in a pass AFTER "pta", shows
ptr1.2_6, points-to vars: { var1 var3 }
ptr1, points-to anything
Why here 'ptr1' is not pointing to '{ var1 var3 }' as found by "pta"?
Can someone please help me understand this behaviour?
--
Thanks,
Nikhil Patil.