75 lines
2.0 KiB
C
75 lines
2.0 KiB
C
#pragma once
|
|
|
|
#ifdef __SPF
|
|
extern "C" void addToCollection(const int line, const char *file, void *pointer, int type);
|
|
extern "C" void removeFromCollection(void *pointer);
|
|
#endif
|
|
|
|
struct graph_node {
|
|
int id; //a number of node
|
|
graph_node *next;
|
|
graph_node *next_header_node; //???
|
|
graph_node *Inext;
|
|
graph_node *same_name_next;
|
|
SgFile *file;
|
|
int file_id;
|
|
int header_id;
|
|
SgStatement *st_header;
|
|
SgStatement *st_last;
|
|
SgStatement *st_copy;
|
|
SgStatement *st_copy_first;
|
|
SgStatement *st_interface;
|
|
SgSymbol *symb; //??? st_header->symbol()
|
|
char *name;
|
|
struct edge *to_called; //outcoming
|
|
struct edge *from_calling; //incoming
|
|
int type; //flag - type of procedure: 1-external,2-internal,3-module
|
|
int split; //flag
|
|
int tmplt; //flag
|
|
int visited; //flag for partition algorithm
|
|
int clone; //flag is clone node
|
|
int count; //counter of inline expansions or calls
|
|
int is_routine;// has ROUTINE attribute - 1, else - 0
|
|
int samenamed; // flag - there is samenamed symbol
|
|
struct argument_numbers *arg_numbs;
|
|
|
|
#if __SPF
|
|
graph_node() { addToCollection(__LINE__, __FILE__, this, 1); }
|
|
~graph_node() { removeFromCollection(this); }
|
|
#endif
|
|
};
|
|
|
|
struct graph_node_list {
|
|
graph_node_list *next;
|
|
graph_node *node;
|
|
|
|
#if __SPF
|
|
graph_node_list() { addToCollection(__LINE__, __FILE__, this, 1); }
|
|
~graph_node_list() { removeFromCollection(this); }
|
|
#endif
|
|
};
|
|
|
|
struct edge {
|
|
edge *next;
|
|
graph_node *from;
|
|
graph_node *to;
|
|
int inlined; //1 - inlined, 0 - not inlined
|
|
|
|
#if __SPF
|
|
edge() { addToCollection(__LINE__, __FILE__, this, 1); }
|
|
~edge() { removeFromCollection(this); }
|
|
#endif
|
|
};
|
|
|
|
struct edge_list {
|
|
edge_list *next;
|
|
edge *edg;
|
|
|
|
#if __SPF
|
|
edge_list() { addToCollection(__LINE__, __FILE__, this, 1); }
|
|
~edge_list() { removeFromCollection(this); }
|
|
#endif
|
|
};
|
|
|
|
|