PIPS
points_to_private.h
Go to the documentation of this file.
1 #ifndef _newgen_points_to_private_included
2 #define _newgen_points_to_private_included
3 #define _gen_points_to_private_start 220
4 /*
5  * THIS FILE HAS BEEN AUTOMATICALLY GENERATED BY NEWGEN.
6  *
7  * PLEASE DO NOT MODIFY IT.
8  */
9 
10 #if !defined(_newgen_descriptor_domain_defined_)
11 #define _newgen_descriptor_domain_defined_
12 #define DESCRIPTOR_NEWGEN_DOMAIN (descriptor_domain)
13 #define descriptor_NEWGEN_DOMAIN (descriptor_domain)
15 #endif /* _newgen_descriptor_domain_defined_ */
16 
17 #if !defined(_newgen_approximation_domain_defined_)
18 #define _newgen_approximation_domain_defined_
19 #define APPROXIMATION_NEWGEN_DOMAIN (approximation_domain)
20 #define approximation_NEWGEN_DOMAIN (approximation_domain)
22 #endif /* _newgen_approximation_domain_defined_ */
23 
24 #if !defined(_newgen_statement_domain_defined_)
25 #define _newgen_statement_domain_defined_
26 #define STATEMENT_NEWGEN_DOMAIN (statement_domain)
27 #define statement_NEWGEN_DOMAIN (statement_domain)
29 #endif /* _newgen_statement_domain_defined_ */
30 
31 #if !defined(_newgen_cell_domain_defined_)
32 #define _newgen_cell_domain_defined_
33 #define CELL_NEWGEN_DOMAIN (cell_domain)
34 #define cell_NEWGEN_DOMAIN (cell_domain)
35 typedef struct _newgen_struct_cell_ * cell;
36 #endif /* _newgen_cell_domain_defined_ */
37 
38 #define points_to_graph_domain (_gen_points_to_private_start+0)
39 #if !defined(_newgen_points_to_graph_domain_defined_)
40 #define _newgen_points_to_graph_domain_defined_
41 #define POINTS_TO_GRAPH_NEWGEN_DOMAIN (points_to_graph_domain)
42 #define points_to_graph_NEWGEN_DOMAIN (points_to_graph_domain)
44 #endif /* _newgen_points_to_graph_domain_defined_ */
45 
46 #define points_to_list_domain (_gen_points_to_private_start+1)
47 #if !defined(_newgen_points_to_list_domain_defined_)
48 #define _newgen_points_to_list_domain_defined_
49 #define POINTS_TO_LIST_NEWGEN_DOMAIN (points_to_list_domain)
50 #define points_to_list_NEWGEN_DOMAIN (points_to_list_domain)
52 #endif /* _newgen_points_to_list_domain_defined_ */
53 
54 #define points_to_domain (_gen_points_to_private_start+2)
55 #if !defined(_newgen_points_to_domain_defined_)
56 #define _newgen_points_to_domain_defined_
57 #define POINTS_TO_NEWGEN_DOMAIN (points_to_domain)
58 #define points_to_NEWGEN_DOMAIN (points_to_domain)
60 #endif /* _newgen_points_to_domain_defined_ */
61 
62 #define statement_points_to_domain (_gen_points_to_private_start+3)
63 #if !defined(_newgen_statement_points_to_domain_defined_)
64 #define _newgen_statement_points_to_domain_defined_
65 #define STATEMENT_POINTS_TO_NEWGEN_DOMAIN (statement_points_to_domain)
66 #define statement_points_to_NEWGEN_DOMAIN (statement_points_to_domain)
68 #endif /* _newgen_statement_points_to_domain_defined_ */
69 
70 /* POINTS_TO_GRAPH
71  */
72 #define POINTS_TO_GRAPH(x) ((points_to_graph)((x).p))
73 #define points_to_graph_CAST(x) POINTS_TO_GRAPH(x)
74 #define POINTS_TO_GRAPH_CAST(x) POINTS_TO_GRAPH(x)
75 #define POINTS_TO_GRAPH_(x) ((x).e)
76 #define POINTS_TO_GRAPH_TYPE points_to_graph
77 #define points_to_graph_TYPE points_to_graph
78 #define points_to_graph_undefined ((points_to_graph)gen_chunk_undefined)
79 #define points_to_graph_undefined_p(x) ((x)==points_to_graph_undefined)
80 
86 #define gen_POINTS_TO_GRAPH_cons gen_points_to_graph_cons
90 extern void write_points_to_graph(FILE*, points_to_graph);
93 
97  set _points_to_graph_set_; /* set:points_to{} */
98 };
99 
100 #define points_to_graph_domain_number(x) ((x)->_type_)
101 #define points_to_graph_bottom_(x) points_to_graph_bottom(x) /* old hack compatible */
102 #define points_to_graph_bottom(x) ((x)->_points_to_graph_bottom_.b)
103 #define points_to_graph_set_(x) points_to_graph_set(x) /* old hack compatible */
104 #define points_to_graph_set(x) ((x)->_points_to_graph_set_)
105 
106 /* POINTS_TO_LIST
107  */
108 #define POINTS_TO_LIST(x) ((points_to_list)((x).p))
109 #define points_to_list_CAST(x) POINTS_TO_LIST(x)
110 #define POINTS_TO_LIST_CAST(x) POINTS_TO_LIST(x)
111 #define POINTS_TO_LIST_(x) ((x).e)
112 #define POINTS_TO_LIST_TYPE points_to_list
113 #define points_to_list_TYPE points_to_list
114 #define points_to_list_undefined ((points_to_list)gen_chunk_undefined)
115 #define points_to_list_undefined_p(x) ((x)==points_to_list_undefined)
116 
122 #define gen_POINTS_TO_LIST_cons gen_points_to_list_cons
126 extern void write_points_to_list(FILE*, points_to_list);
127 extern points_to_list read_points_to_list(FILE*);
129 
133  list _points_to_list_list_; /* list:points_to* */
134 };
135 
136 #define points_to_list_domain_number(x) ((x)->_type_)
137 #define points_to_list_bottom_(x) points_to_list_bottom(x) /* old hack compatible */
138 #define points_to_list_bottom(x) ((x)->_points_to_list_bottom_.b)
139 #define points_to_list_list_(x) points_to_list_list(x) /* old hack compatible */
140 #define points_to_list_list(x) ((x)->_points_to_list_list_)
141 
142 /* POINTS_TO
143  */
144 #define POINTS_TO(x) ((points_to)((x).p))
145 #define points_to_CAST(x) POINTS_TO(x)
146 #define POINTS_TO_CAST(x) POINTS_TO(x)
147 #define POINTS_TO_(x) ((x).e)
148 #define POINTS_TO_TYPE points_to
149 #define points_to_TYPE points_to
150 #define points_to_undefined ((points_to)gen_chunk_undefined)
151 #define points_to_undefined_p(x) ((x)==points_to_undefined)
152 
154 extern void free_points_to(points_to);
156 extern bool points_to_consistent_p(points_to);
157 extern bool points_to_defined_p(points_to);
158 #define gen_POINTS_TO_cons gen_points_to_cons
162 extern void write_points_to(FILE*, points_to);
163 extern points_to read_points_to(FILE*);
165 
168  cell _points_to_source_; /* source:cell */
169  cell _points_to_sink_; /* sink:cell */
170  approximation _points_to_approximation_; /* approximation:approximation */
171  descriptor _points_to_descriptor_; /* descriptor:descriptor */
172 };
173 
174 #define points_to_domain_number(x) ((x)->_type_)
175 #define points_to_source_(x) points_to_source(x) /* old hack compatible */
176 #define points_to_source(x) ((x)->_points_to_source_)
177 #define points_to_sink_(x) points_to_sink(x) /* old hack compatible */
178 #define points_to_sink(x) ((x)->_points_to_sink_)
179 #define points_to_approximation_(x) points_to_approximation(x) /* old hack compatible */
180 #define points_to_approximation(x) ((x)->_points_to_approximation_)
181 #define points_to_descriptor_(x) points_to_descriptor(x) /* old hack compatible */
182 #define points_to_descriptor(x) ((x)->_points_to_descriptor_)
183 
184 /* STATEMENT_POINTS_TO
185  */
186 #define STATEMENT_POINTS_TO(x) ((statement_points_to)((x).p))
187 #define statement_points_to_CAST(x) STATEMENT_POINTS_TO(x)
188 #define STATEMENT_POINTS_TO_CAST(x) STATEMENT_POINTS_TO(x)
189 #define STATEMENT_POINTS_TO_(x) ((x).e)
190 #define STATEMENT_POINTS_TO_TYPE statement_points_to
191 #define statement_points_to_TYPE statement_points_to
192 #define statement_points_to_undefined ((statement_points_to)gen_chunk_undefined)
193 #define statement_points_to_undefined_p(x) ((x)==statement_points_to_undefined)
194 
200 #define gen_STATEMENT_POINTS_TO_cons gen_statement_points_to_cons
207 
211 };
212 
213 #define statement_points_to_domain_number(x) ((x)->_type_)
214 #define statement_points_to_hash_table(x) ((x)->_statement_points_to_holder_)
215 #define statement_points_to_key_type statement
216 #define statement_points_to_value_type points_to_list
217 #define STATEMENT_POINTS_TO_MAP(k,v,c,f) FUNCTION_MAP(statement_points_to,p,p,k,v,c,f)
218 #define STATEMENT_POINTS_TO_FOREACH(k,v,f) FUNCTION_FOREACH(statement_points_to,p,p,k,v,f)
224 
225 #define points_to_private_spec "\
226 --NEWGEN-START 220\n\
227 import descriptor from \"ri.newgen\";\n\
228 import approximation from \"ri.newgen\";\n\
229 import statement from \"ri.newgen\";\n\
230 import cell from \"effects.newgen\";\n\
231 points_to_graph = bottom:bool x set:points_to{};\n\
232 points_to_list = bottom:bool x list:points_to*;\n\
233 points_to = source:cell x sink:cell x approximation:approximation x descriptor:descriptor;\n\
234 statement_points_to = persistant statement:statement -> points_to_list:points_to_list;\n\
235 "
236 #endif
bool points_to_defined_p(points_to)
points_to_graph copy_points_to_graph(points_to_graph)
POINTS_TO_GRAPH.
bool points_to_consistent_p(points_to)
points_to_list read_points_to_list(FILE *)
void free_points_to(points_to)
points_to_list apply_statement_points_to(statement_points_to, statement)
struct _newgen_struct_approximation_ * approximation
struct _newgen_struct_statement_points_to_ * statement_points_to
void update_statement_points_to(statement_points_to, statement, points_to_list)
void points_to_list_non_recursive_free(points_to_list)
struct _newgen_struct_statement_ * statement
list gen_points_to_list_cons(points_to_list, list)
void points_to_list_assign_contents(points_to_list, points_to_list)
points_to_graph read_points_to_graph(FILE *)
void write_statement_points_to(FILE *, statement_points_to)
bool points_to_list_defined_p(points_to_list)
statement_points_to copy_statement_points_to(statement_points_to)
STATEMENT_POINTS_TO.
points_to_graph make_points_to_graph(bool, set)
void free_points_to_graph(points_to_graph)
void write_points_to_list(FILE *, points_to_list)
list gen_points_to_graph_cons(points_to_graph, list)
points_to read_points_to(FILE *)
struct _newgen_struct_cell_ * cell
statement_points_to make_statement_points_to(void)
void write_points_to(FILE *, points_to)
bool statement_points_to_consistent_p(statement_points_to)
void free_statement_points_to(statement_points_to)
struct _newgen_struct_points_to_ * points_to
statement_points_to read_statement_points_to(FILE *)
points_to check_points_to(points_to)
statement_points_to check_statement_points_to(statement_points_to)
points_to_graph check_points_to_graph(points_to_graph)
void extend_statement_points_to(statement_points_to, statement, points_to_list)
list gen_statement_points_to_cons(statement_points_to, list)
void write_points_to_graph(FILE *, points_to_graph)
struct _newgen_struct_points_to_list_ * points_to_list
bool bound_statement_points_to_p(statement_points_to, statement)
void statement_points_to_assign_contents(statement_points_to, statement_points_to)
void points_to_non_recursive_free(points_to)
void points_to_graph_non_recursive_free(points_to_graph)
void points_to_assign_contents(points_to, points_to)
bool points_to_graph_defined_p(points_to_graph)
list gen_points_to_cons(points_to, list)
points_to_list delete_statement_points_to(statement_points_to, statement)
points_to_list copy_points_to_list(points_to_list)
POINTS_TO_LIST.
points_to_list make_points_to_list(bool, list)
bool points_to_graph_consistent_p(points_to_graph)
struct _newgen_struct_points_to_graph_ * points_to_graph
void free_points_to_list(points_to_list)
void statement_points_to_non_recursive_free(statement_points_to)
bool statement_points_to_defined_p(statement_points_to)
struct _newgen_struct_descriptor_ * descriptor
points_to_list check_points_to_list(points_to_list)
points_to copy_points_to(points_to)
POINTS_TO.
points_to make_points_to(cell, cell, approximation, descriptor)
bool points_to_list_consistent_p(points_to_list)
void points_to_graph_assign_contents(points_to_graph, points_to_graph)
#define intptr_t
Definition: stdint.in.h:294
descriptor _points_to_descriptor_
approximation:approximation
approximation _points_to_approximation_
sink:cell
cell _points_to_sink_
source:cell
FI: I do not understand why the type is duplicated at the set level.
Definition: set.c:59
The structure used to build lists in NewGen.
Definition: newgen_list.h:41
A gen_chunk is used to store every object.
Definition: genC.h:58