Clean up "linearize()" calling convention even more.
[smatch.git] / linearize.h
blobfdd135a40266c05ad74c848f106bb7d56156282d
1 #ifndef LINEARIZE_H
2 #define LINEARIZE_H
4 #include "lib.h"
5 #include "token.h"
6 #include "parse.h"
7 #include "symbol.h"
9 struct basic_block_list;
11 struct basic_block {
12 struct symbol *this; /* Points to the symbol that owns "this" basic block - NULL if unreachable */
13 struct statement_list *stmts; /* Linear list of statements */
14 struct symbol *next; /* Points to the symbol that describes the fallthrough */
17 static inline void add_bb(struct basic_block_list **list, struct basic_block *bb)
19 add_ptr_list((struct ptr_list **)list, bb);
22 struct entrypoint {
23 struct symbol *name;
24 struct symbol_list *syms;
25 struct basic_block_list *bbs;
26 struct basic_block *active;
29 void linearize_symbol(struct symbol *sym);
31 #endif /* LINEARIZE_H */