In getStaticSize, case of FieldRegionKind should return size of pointee type of the member. In the following example:
struct B {
int x;
int y;
int z;
};
class A{
public:
void foo(){
m++;
}
private:
B *m;
};getDynamicElementCount of m region, if getDynamicExtent return the pointer size, getDynamicElementCount returns 0 in 64bit architecture(since pointer size is 8 while size of pointee type is 12). Use pointee type instead, it will return 1.