Lines Matching refs:artifact

109 /// A tree node representing the "use" relation between an artifact A
113 /// So the node contains the artifact A and a vector children nodes
121 /// The artifact contained in this node.
122 type_or_decl_base* artifact = nullptr;
124 /// actually use the 'artifact' above. In other words, the
125 /// 'artifact" data member above is a sub-type of each artifact
135 /// @param the artifact to consider.
137 : artifact (t)
143 /// Add a user artifact node for the artifact carried by this node.
145 /// The artifact carried by the current node is a sub-type of the
146 /// artifact carried by the 'user' node being added.
148 /// @param user a tree node that carries an artifact that uses the
149 /// artifact carried by the current node.
153 ABG_ASSERT(user && !artifact_in_tree(user->artifact ));
156 record_artifact(user->artifact);
165 artifact = o.artifact;
176 artifact = o.artifact;
184 /// @return true if the artifact carried by the current node has no
192 /// @return true if the current artifact uses no other artifact.
197 /// Test wether a given artifact has been added to the tree.
202 /// An artifact is considered as having been added to the tree if
206 /// @param artifact the artifact to consider.
208 /// @return true iff @p artifact is present in the tree.
210 artifact_in_tree(type_or_decl_base *artifact)
214 return root_node->artifacts.find(artifact) != root_node->artifacts.end();
217 /// Record an artifact as being added to the current tree.
219 /// Note that this function assumes the artifact is not already
222 /// @param artifact the artifact to consider.
224 record_artifact(type_or_decl_base *artifact)
226 ABG_ASSERT(!artifact_in_tree(artifact));
229 root_node->artifacts.insert(artifact);
252 /// Fill an "artifact use" tree from a map that associates a type T
253 /// (or artifact) to artifacts that use T as a sub-type.
260 /// the tree contains an artifact A and its children nodes contain the
267 auto r = artifact_use_rel.find(tree.artifact);
271 // Walk the users of "artifact", create a tree node for each one of
277 // The artifact has already been added to the tree, so skip it
293 /// construct an "artifact use tree" for a type designated by a "type-id".
294 /// (or artifact) to artifacts that use T as a sub-type.
296 /// Each node of the "artifact use tree" contains a type T and its
382 type_or_decl_base* artifact = artifact_use_tree.artifact;
383 if (!artifact)
386 string repr = artifact->get_pretty_representation();
391 // We reached a leaf node. This means that no other artifact
392 // uses the artifact carried by this leaf node. So, we want to
398 if (is_decl(artifact))
400 if (abigail::ir::var_decl* v = is_var_decl(artifact))
405 if (abigail::ir::function_decl* f = is_function_decl(artifact))
467 if (use_tree->artifact)
471 << use_tree->artifact->get_pretty_representation()