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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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