PIPS
|
Go to the source code of this file.
Data Structures | |
struct | _newgen_struct_points_to_graph_ |
struct | _newgen_struct_points_to_list_ |
struct | _newgen_struct_points_to_ |
struct | _newgen_struct_statement_points_to_ |
Typedefs | |
typedef struct _newgen_struct_descriptor_ * | descriptor |
typedef struct _newgen_struct_approximation_ * | approximation |
typedef struct _newgen_struct_statement_ * | statement |
typedef struct _newgen_struct_cell_ * | cell |
typedef struct _newgen_struct_points_to_graph_ * | points_to_graph |
typedef struct _newgen_struct_points_to_list_ * | points_to_list |
typedef struct _newgen_struct_points_to_ * | points_to |
typedef struct _newgen_struct_statement_points_to_ * | statement_points_to |
#define _gen_points_to_private_start 220 |
Definition at line 3 of file points_to_private.h.
#define _newgen_approximation_domain_defined_ |
newgen_descriptor_domain_defined
Definition at line 18 of file points_to_private.h.
#define _newgen_cell_domain_defined_ |
newgen_statement_domain_defined
Definition at line 32 of file points_to_private.h.
#define _newgen_descriptor_domain_defined_ |
Definition at line 11 of file points_to_private.h.
#define _newgen_points_to_domain_defined_ |
Definition at line 56 of file points_to_private.h.
#define _newgen_points_to_graph_domain_defined_ |
Definition at line 40 of file points_to_private.h.
#define _newgen_points_to_list_domain_defined_ |
Definition at line 48 of file points_to_private.h.
#define _newgen_statement_domain_defined_ |
newgen_approximation_domain_defined
Definition at line 25 of file points_to_private.h.
#define _newgen_statement_points_to_domain_defined_ |
Definition at line 64 of file points_to_private.h.
#define APPROXIMATION_NEWGEN_DOMAIN (approximation_domain) |
Definition at line 19 of file points_to_private.h.
#define approximation_NEWGEN_DOMAIN (approximation_domain) |
Definition at line 20 of file points_to_private.h.
#define CELL_NEWGEN_DOMAIN (cell_domain) |
Definition at line 33 of file points_to_private.h.
#define cell_NEWGEN_DOMAIN (cell_domain) |
Definition at line 34 of file points_to_private.h.
#define DESCRIPTOR_NEWGEN_DOMAIN (descriptor_domain) |
Definition at line 12 of file points_to_private.h.
#define descriptor_NEWGEN_DOMAIN (descriptor_domain) |
Definition at line 13 of file points_to_private.h.
#define gen_POINTS_TO_cons gen_points_to_cons |
Definition at line 158 of file points_to_private.h.
#define gen_POINTS_TO_GRAPH_cons gen_points_to_graph_cons |
Definition at line 86 of file points_to_private.h.
#define gen_POINTS_TO_LIST_cons gen_points_to_list_cons |
Definition at line 122 of file points_to_private.h.
#define gen_STATEMENT_POINTS_TO_cons gen_statement_points_to_cons |
Definition at line 200 of file points_to_private.h.
POINTS_TO.
Definition at line 144 of file points_to_private.h.
Definition at line 147 of file points_to_private.h.
Definition at line 180 of file points_to_private.h.
#define points_to_approximation_ | ( | x | ) | points_to_approximation(x) /**old hack compatible */ |
Definition at line 179 of file points_to_private.h.
Definition at line 145 of file points_to_private.h.
Definition at line 146 of file points_to_private.h.
Definition at line 182 of file points_to_private.h.
#define points_to_descriptor_ | ( | x | ) | points_to_descriptor(x) /**old hack compatible */ |
Definition at line 181 of file points_to_private.h.
#define points_to_domain (_gen_points_to_private_start+2) |
newgen_points_to_list_domain_defined
Definition at line 54 of file points_to_private.h.
Definition at line 174 of file points_to_private.h.
#define POINTS_TO_GRAPH | ( | x | ) | ((points_to_graph)((x).p)) |
newgen_statement_points_to_domain_defined
POINTS_TO_GRAPH
Definition at line 72 of file points_to_private.h.
Definition at line 75 of file points_to_private.h.
Definition at line 102 of file points_to_private.h.
#define points_to_graph_bottom_ | ( | x | ) | points_to_graph_bottom(x) /**old hack compatible */ |
Definition at line 101 of file points_to_private.h.
#define points_to_graph_CAST | ( | x | ) | POINTS_TO_GRAPH(x) |
Definition at line 73 of file points_to_private.h.
#define POINTS_TO_GRAPH_CAST | ( | x | ) | POINTS_TO_GRAPH(x) |
Definition at line 74 of file points_to_private.h.
#define points_to_graph_domain (_gen_points_to_private_start+0) |
newgen_cell_domain_defined
Definition at line 38 of file points_to_private.h.
Definition at line 100 of file points_to_private.h.
#define POINTS_TO_GRAPH_NEWGEN_DOMAIN (points_to_graph_domain) |
Definition at line 41 of file points_to_private.h.
#define points_to_graph_NEWGEN_DOMAIN (points_to_graph_domain) |
Definition at line 42 of file points_to_private.h.
Definition at line 104 of file points_to_private.h.
#define points_to_graph_set_ | ( | x | ) | points_to_graph_set(x) /**old hack compatible */ |
Definition at line 103 of file points_to_private.h.
#define POINTS_TO_GRAPH_TYPE points_to_graph |
Definition at line 76 of file points_to_private.h.
#define points_to_graph_TYPE points_to_graph |
Definition at line 77 of file points_to_private.h.
#define points_to_graph_undefined ((points_to_graph)gen_chunk_undefined) |
Definition at line 78 of file points_to_private.h.
#define points_to_graph_undefined_p | ( | x | ) | ((x)==points_to_graph_undefined) |
Definition at line 79 of file points_to_private.h.
#define POINTS_TO_LIST | ( | x | ) | ((points_to_list)((x).p)) |
POINTS_TO_LIST.
Definition at line 108 of file points_to_private.h.
Definition at line 111 of file points_to_private.h.
Definition at line 138 of file points_to_private.h.
#define points_to_list_bottom_ | ( | x | ) | points_to_list_bottom(x) /**old hack compatible */ |
Definition at line 137 of file points_to_private.h.
#define points_to_list_CAST | ( | x | ) | POINTS_TO_LIST(x) |
Definition at line 109 of file points_to_private.h.
#define POINTS_TO_LIST_CAST | ( | x | ) | POINTS_TO_LIST(x) |
Definition at line 110 of file points_to_private.h.
#define points_to_list_domain (_gen_points_to_private_start+1) |
newgen_points_to_graph_domain_defined
Definition at line 46 of file points_to_private.h.
Definition at line 136 of file points_to_private.h.
Definition at line 140 of file points_to_private.h.
#define points_to_list_list_ | ( | x | ) | points_to_list_list(x) /**old hack compatible */ |
Definition at line 139 of file points_to_private.h.
#define POINTS_TO_LIST_NEWGEN_DOMAIN (points_to_list_domain) |
Definition at line 49 of file points_to_private.h.
#define points_to_list_NEWGEN_DOMAIN (points_to_list_domain) |
Definition at line 50 of file points_to_private.h.
#define POINTS_TO_LIST_TYPE points_to_list |
Definition at line 112 of file points_to_private.h.
#define points_to_list_TYPE points_to_list |
Definition at line 113 of file points_to_private.h.
#define points_to_list_undefined ((points_to_list)gen_chunk_undefined) |
Definition at line 114 of file points_to_private.h.
#define points_to_list_undefined_p | ( | x | ) | ((x)==points_to_list_undefined) |
Definition at line 115 of file points_to_private.h.
#define POINTS_TO_NEWGEN_DOMAIN (points_to_domain) |
Definition at line 57 of file points_to_private.h.
#define points_to_NEWGEN_DOMAIN (points_to_domain) |
Definition at line 58 of file points_to_private.h.
#define points_to_private_spec "\--NEWGEN-START 220\n\import descriptor from \"ri.newgen\";\n\import approximation from \"ri.newgen\";\n\import statement from \"ri.newgen\";\n\import cell from \"effects.newgen\";\n\points_to_graph = bottom:bool x set:points_to{};\n\points_to_list = bottom:bool x list:points_to*;\n\points_to = source:cell x sink:cell x approximation:approximation x descriptor:descriptor;\n\statement_points_to = persistant statement:statement -> points_to_list:points_to_list;\n\" |
Definition at line 225 of file points_to_private.h.
Definition at line 178 of file points_to_private.h.
#define points_to_sink_ | ( | x | ) | points_to_sink(x) /**old hack compatible */ |
Definition at line 177 of file points_to_private.h.
Definition at line 176 of file points_to_private.h.
#define points_to_source_ | ( | x | ) | points_to_source(x) /**old hack compatible */ |
Definition at line 175 of file points_to_private.h.
#define POINTS_TO_TYPE points_to |
Definition at line 148 of file points_to_private.h.
#define points_to_TYPE points_to |
Definition at line 149 of file points_to_private.h.
#define points_to_undefined ((points_to)gen_chunk_undefined) |
Definition at line 150 of file points_to_private.h.
#define points_to_undefined_p | ( | x | ) | ((x)==points_to_undefined) |
Definition at line 151 of file points_to_private.h.
#define STATEMENT_NEWGEN_DOMAIN (statement_domain) |
Definition at line 26 of file points_to_private.h.
#define statement_NEWGEN_DOMAIN (statement_domain) |
Definition at line 27 of file points_to_private.h.
#define STATEMENT_POINTS_TO | ( | x | ) | ((statement_points_to)((x).p)) |
STATEMENT_POINTS_TO.
Definition at line 186 of file points_to_private.h.
Definition at line 189 of file points_to_private.h.
#define statement_points_to_CAST | ( | x | ) | STATEMENT_POINTS_TO(x) |
Definition at line 187 of file points_to_private.h.
#define STATEMENT_POINTS_TO_CAST | ( | x | ) | STATEMENT_POINTS_TO(x) |
Definition at line 188 of file points_to_private.h.
#define statement_points_to_domain (_gen_points_to_private_start+3) |
newgen_points_to_domain_defined
Definition at line 62 of file points_to_private.h.
Definition at line 213 of file points_to_private.h.
#define STATEMENT_POINTS_TO_FOREACH | ( | k, | |
v, | |||
f | |||
) | FUNCTION_FOREACH(statement_points_to,p,p,k,v,f) |
Definition at line 218 of file points_to_private.h.
Definition at line 214 of file points_to_private.h.
#define statement_points_to_key_type statement |
Definition at line 215 of file points_to_private.h.
#define STATEMENT_POINTS_TO_MAP | ( | k, | |
v, | |||
c, | |||
f | |||
) | FUNCTION_MAP(statement_points_to,p,p,k,v,c,f) |
Definition at line 217 of file points_to_private.h.
#define STATEMENT_POINTS_TO_NEWGEN_DOMAIN (statement_points_to_domain) |
Definition at line 65 of file points_to_private.h.
#define statement_points_to_NEWGEN_DOMAIN (statement_points_to_domain) |
Definition at line 66 of file points_to_private.h.
#define STATEMENT_POINTS_TO_TYPE statement_points_to |
Definition at line 190 of file points_to_private.h.
#define statement_points_to_TYPE statement_points_to |
Definition at line 191 of file points_to_private.h.
#define statement_points_to_undefined ((statement_points_to)gen_chunk_undefined) |
Definition at line 192 of file points_to_private.h.
#define statement_points_to_undefined_p | ( | x | ) | ((x)==statement_points_to_undefined) |
Definition at line 193 of file points_to_private.h.
#define statement_points_to_value_type points_to_list |
Definition at line 216 of file points_to_private.h.
typedef struct _newgen_struct_approximation_* approximation |
Definition at line 21 of file points_to_private.h.
typedef struct _newgen_struct_cell_* cell |
Definition at line 35 of file points_to_private.h.
typedef struct _newgen_struct_descriptor_* descriptor |
Definition at line 14 of file points_to_private.h.
typedef struct _newgen_struct_points_to_* points_to |
Definition at line 59 of file points_to_private.h.
typedef struct _newgen_struct_points_to_graph_* points_to_graph |
Definition at line 43 of file points_to_private.h.
typedef struct _newgen_struct_points_to_list_* points_to_list |
Definition at line 51 of file points_to_private.h.
typedef struct _newgen_struct_statement_* statement |
Definition at line 28 of file points_to_private.h.
typedef struct _newgen_struct_statement_points_to_* statement_points_to |
Definition at line 67 of file points_to_private.h.
points_to_list apply_statement_points_to | ( | statement_points_to | f, |
statement | k | ||
) |
Definition at line 181 of file points_to_private.c.
References f(), HASH_GET, intptr_t, and statement_points_to_hash_table.
bool bound_statement_points_to_p | ( | statement_points_to | f, |
statement | k | ||
) |
Definition at line 193 of file points_to_private.c.
References f(), HASH_BOUND_P, intptr_t, and statement_points_to_hash_table.
Definition at line 106 of file points_to_private.c.
References gen_check(), and points_to_domain.
Referenced by points_to_assign_contents(), and points_to_consistent_p().
points_to_graph check_points_to_graph | ( | points_to_graph | p | ) |
Definition at line 22 of file points_to_private.c.
References gen_check(), and points_to_graph_domain.
Referenced by points_to_graph_assign_contents(), and points_to_graph_consistent_p().
points_to_list check_points_to_list | ( | points_to_list | p | ) |
Definition at line 64 of file points_to_private.c.
References gen_check(), and points_to_list_domain.
Referenced by points_to_list_assign_contents(), and points_to_list_consistent_p().
statement_points_to check_statement_points_to | ( | statement_points_to | p | ) |
Definition at line 148 of file points_to_private.c.
References gen_check(), and statement_points_to_domain.
Referenced by statement_points_to_assign_contents(), and statement_points_to_consistent_p().
POINTS_TO.
Definition at line 100 of file points_to_private.c.
References gen_copy_tree().
Referenced by add_arc_to_points_to_context(), compute_points_to_binded_set(), dereferencing_subscript_to_points_to(), filter_formal_context_according_to_actual_context(), formal_source_to_sinks(), full_copy_pt_map(), full_copy_simple_pt_map(), generic_stub_source_to_sinks(), global_source_to_sinks(), merge_actual_and_formal_sinks(), new_filter_formal_context_according_to_actual_context(), null_to_sinks(), offset_cell(), points_to_source_to_arcs(), points_to_to_context_points_to(), recursive_filter_formal_context_according_to_actual_context(), update_points_to_context_with_arc(), and user_call_to_points_to_fast_interprocedural().
points_to_graph copy_points_to_graph | ( | points_to_graph | p | ) |
POINTS_TO_GRAPH.
Definition at line 16 of file points_to_private.c.
References gen_copy_tree().
Referenced by intrinsic_call_to_points_to().
points_to_list copy_points_to_list | ( | points_to_list | p | ) |
POINTS_TO_LIST.
Definition at line 58 of file points_to_private.c.
References gen_copy_tree().
Referenced by initial_points_to(), and program_points_to().
statement_points_to copy_statement_points_to | ( | statement_points_to | p | ) |
STATEMENT_POINTS_TO.
Definition at line 142 of file points_to_private.c.
References gen_copy_tree().
points_to_list delete_statement_points_to | ( | statement_points_to | f, |
statement | k | ||
) |
Definition at line 190 of file points_to_private.c.
References f(), HASH_DELETE, intptr_t, and statement_points_to_hash_table.
void extend_statement_points_to | ( | statement_points_to | f, |
statement | k, | ||
points_to_list | v | ||
) |
Definition at line 187 of file points_to_private.c.
References f(), HASH_EXTEND, intptr_t, and statement_points_to_hash_table.
void free_points_to | ( | points_to | p | ) |
Definition at line 103 of file points_to_private.c.
References gen_free().
Referenced by reference_condition_to_points_to(), and remove_points_to_arcs().
void free_points_to_graph | ( | points_to_graph | p | ) |
Definition at line 19 of file points_to_private.c.
References gen_free().
Referenced by free_points_to_graph_sets(), new_substitute_stubs_in_transformer(), and points_to_set_block_projection().
void free_points_to_list | ( | points_to_list | p | ) |
Definition at line 61 of file points_to_private.c.
References gen_free().
void free_statement_points_to | ( | statement_points_to | p | ) |
Definition at line 145 of file points_to_private.c.
References gen_free().
Definition at line 116 of file points_to_private.c.
References gen_typed_cons(), and POINTS_TO_NEWGEN_DOMAIN.
list gen_points_to_graph_cons | ( | points_to_graph | p, |
list | l | ||
) |
Definition at line 32 of file points_to_private.c.
References gen_typed_cons(), and POINTS_TO_GRAPH_NEWGEN_DOMAIN.
list gen_points_to_list_cons | ( | points_to_list | p, |
list | l | ||
) |
Definition at line 74 of file points_to_private.c.
References gen_typed_cons(), and POINTS_TO_LIST_NEWGEN_DOMAIN.
list gen_statement_points_to_cons | ( | statement_points_to | p, |
list | l | ||
) |
Definition at line 158 of file points_to_private.c.
References gen_typed_cons(), and STATEMENT_POINTS_TO_NEWGEN_DOMAIN.
points_to make_points_to | ( | cell | a1, |
cell | a2, | ||
approximation | a3, | ||
descriptor | a4 | ||
) |
Definition at line 136 of file points_to_private.c.
References gen_alloc(), GEN_CHECK_ALLOC, and points_to_domain.
Referenced by anywhere_source_to_sinks(), assignment_to_points_to(), compute_points_to_binded_set(), compute_points_to_gen_set(), create_pointer_to_array_stub_points_to(), create_stub_points_to(), declaration_statement_to_points_to(), dereferencing_subscript_to_points_to(), equal_condition_to_points_to(), filter_formal_context_according_to_actual_context(), filter_formal_out_context_according_to_formal_in_context(), freed_list_to_points_to(), fuse_points_to_sink_cells(), gen_may_constant_paths(), gen_may_set(), gen_must_constant_paths(), gen_must_set(), global_source_to_sinks(), k_limit_points_to(), kill_may_set(), list_assignment_to_points_to(), lower_points_to_approximations_according_to_write_effects(), malloc_to_points_to_sinks(), merge_points_to_set(), new_filter_formal_context_according_to_actual_context(), new_recursive_filter_formal_context_according_to_actual_context(), new_recursive_filter_formal_context_according_to_actual_context_for_pointer_pair(), non_equal_condition_to_points_to(), null_equal_condition_to_points_to(), null_to_sinks(), offset_cells(), opgen_null_location(), pointer_formal_parameter_to_stub_points_to(), points_to_anywhere(), points_to_anywhere_typed(), points_to_binding_arguments(), points_to_independent_store(), points_to_nowhere(), points_to_path_to_k_limited_points_to_path(), points_to_set_block_projection(), points_to_translation_of_formal_parameters(), points_to_translation_of_struct_formal_parameter(), points_to_with_stripped_sink(), recursive_filter_formal_context_according_to_actual_context(), reference_condition_to_points_to(), remove_arcs_from_pt_map(), remove_points_to_arcs(), remove_points_to_cell(), source_to_sinks(), struct_assignment_to_points_to(), struct_initialization_to_points_to(), upgrade_approximations_in_points_to_set(), and user_call_to_points_to_fast_interprocedural().
points_to_graph make_points_to_graph | ( | bool | a1, |
set | a2 | ||
) |
Definition at line 52 of file points_to_private.c.
References gen_alloc(), GEN_CHECK_ALLOC, and points_to_graph_domain.
Referenced by compute_points_to_binded_set(), filter_formal_context_according_to_actual_context(), new_filter_formal_context_according_to_actual_context(), new_points_to_unstructured(), new_recursive_filter_formal_context_according_to_actual_context_for_pointer_pair(), new_substitute_stubs_in_transformer(), points_to_binding_arguments(), points_to_set_block_projection(), recursive_filter_formal_context_according_to_actual_context(), and translation_transitive_closure().
points_to_list make_points_to_list | ( | bool | a1, |
list | a2 | ||
) |
Definition at line 94 of file points_to_private.c.
References gen_alloc(), GEN_CHECK_ALLOC, and points_to_list_domain.
Referenced by fi_points_to_storage(), generic_points_to_analysis(), init_points_to_analysis(), initial_points_to(), points_to_storage(), and program_points_to().
statement_points_to make_statement_points_to | ( | void | ) |
Definition at line 178 of file points_to_private.c.
References gen_alloc(), GEN_CHECK_ALLOC, and statement_points_to_domain.
Definition at line 119 of file points_to_private.c.
References check_points_to(), message_assert, and points_to_defined_p().
Definition at line 109 of file points_to_private.c.
References check_points_to(), and gen_consistent_p().
Referenced by consistent_points_to_arc_p(), and word_points_to().
Definition at line 113 of file points_to_private.c.
References gen_defined_p().
Referenced by points_to_assign_contents().
void points_to_graph_assign_contents | ( | points_to_graph | r, |
points_to_graph | v | ||
) |
Definition at line 35 of file points_to_private.c.
References check_points_to_graph(), message_assert, and points_to_graph_defined_p().
bool points_to_graph_consistent_p | ( | points_to_graph | p | ) |
Definition at line 25 of file points_to_private.c.
References check_points_to_graph(), and gen_consistent_p().
Referenced by boolean_intrinsic_call_condition_to_points_to(), call_condition_to_points_to(), call_to_points_to(), condition_to_points_to(), expression_to_points_to(), intrinsic_call_condition_to_points_to(), intrinsic_call_to_points_to(), relational_intrinsic_call_condition_to_points_to(), and test_to_points_to().
bool points_to_graph_defined_p | ( | points_to_graph | p | ) |
Definition at line 29 of file points_to_private.c.
References gen_defined_p().
Referenced by points_to_graph_assign_contents().
void points_to_graph_non_recursive_free | ( | points_to_graph | p | ) |
Definition at line 42 of file points_to_private.c.
References free().
void points_to_list_assign_contents | ( | points_to_list | r, |
points_to_list | v | ||
) |
Definition at line 77 of file points_to_private.c.
References check_points_to_list(), message_assert, and points_to_list_defined_p().
bool points_to_list_consistent_p | ( | points_to_list | p | ) |
Definition at line 67 of file points_to_private.c.
References check_points_to_list(), and gen_consistent_p().
Referenced by fi_points_to_storage(), init_points_to_analysis(), and points_to_storage().
bool points_to_list_defined_p | ( | points_to_list | p | ) |
Definition at line 71 of file points_to_private.c.
References gen_defined_p().
Referenced by points_to_list_assign_contents().
void points_to_list_non_recursive_free | ( | points_to_list | p | ) |
Definition at line 84 of file points_to_private.c.
References free().
void points_to_non_recursive_free | ( | points_to | p | ) |
Definition at line 126 of file points_to_private.c.
References free().
points_to read_points_to | ( | FILE * | f | ) |
Definition at line 133 of file points_to_private.c.
References f(), and gen_read().
points_to_graph read_points_to_graph | ( | FILE * | f | ) |
Definition at line 49 of file points_to_private.c.
References f(), and gen_read().
points_to_list read_points_to_list | ( | FILE * | f | ) |
Definition at line 91 of file points_to_private.c.
References f(), and gen_read().
statement_points_to read_statement_points_to | ( | FILE * | f | ) |
Definition at line 175 of file points_to_private.c.
References f(), and gen_read().
void statement_points_to_assign_contents | ( | statement_points_to | r, |
statement_points_to | v | ||
) |
Definition at line 161 of file points_to_private.c.
References check_statement_points_to(), message_assert, and statement_points_to_defined_p().
bool statement_points_to_consistent_p | ( | statement_points_to | p | ) |
Definition at line 151 of file points_to_private.c.
References check_statement_points_to(), and gen_consistent_p().
bool statement_points_to_defined_p | ( | statement_points_to | p | ) |
Definition at line 155 of file points_to_private.c.
References gen_defined_p().
Referenced by statement_points_to_assign_contents().
void statement_points_to_non_recursive_free | ( | statement_points_to | p | ) |
Definition at line 168 of file points_to_private.c.
References free().
void update_statement_points_to | ( | statement_points_to | f, |
statement | k, | ||
points_to_list | v | ||
) |
Definition at line 184 of file points_to_private.c.
References f(), HASH_UPDATE, intptr_t, and statement_points_to_hash_table.
void write_points_to | ( | FILE * | f, |
points_to | p | ||
) |
Definition at line 130 of file points_to_private.c.
References f(), and gen_write().
void write_points_to_graph | ( | FILE * | f, |
points_to_graph | p | ||
) |
Definition at line 46 of file points_to_private.c.
References f(), and gen_write().
void write_points_to_list | ( | FILE * | f, |
points_to_list | p | ||
) |
Definition at line 88 of file points_to_private.c.
References f(), and gen_write().
void write_statement_points_to | ( | FILE * | f, |
statement_points_to | p | ||
) |
Definition at line 172 of file points_to_private.c.
References f(), and gen_write().