skyhover - 2005-02-14

I met some problem related to recursive type when analyzing linux kernel using banshee with field-sensitivity support. For example, in `include/linux/list.h', there is some code similar to the following:
struct list_head { struct list_head *next, *prev; };
void __list_add(struct list_head *new, struct list_head *prev,  struct list_head *next);
void list_add(struct list_head *new, struct list_head *head)
{ __list_add(new, head, head->next); }

How does banshee deal with the matching between `head->next' and its corresponding parameter `next'?

Thanks

Skyhover