Return -1 only on failure to execute a program.

Also fix some comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109499 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Mikhail Glushenkov
2010-07-27 11:19:36 +00:00
parent 978bb87f88
commit 67d985ffb2
6 changed files with 59 additions and 48 deletions

View File

@ -132,28 +132,28 @@ namespace llvmc {
void insertNode(Tool* T);
/// insertEdge - Insert a new edge into the graph. Takes ownership
/// of the Edge object.
/// of the Edge object. Returns non-zero value on error.
int insertEdge(const std::string& A, Edge* E);
/// Build - Build target(s) from the input file set. Command-line
/// options are passed implicitly as global variables.
/// Build - Build target(s) from the input file set. Command-line options
/// are passed implicitly as global variables. Returns non-zero value on
/// error (usually the failed program's exit code).
int Build(llvm::sys::Path const& TempDir, const LanguageMap& LangMap);
/// Check - Check the compilation graph for common errors like
/// cycles, input/output language mismatch and multiple default
/// edges. Prints error messages and in case it finds any errors.
/// Check - Check the compilation graph for common errors like cycles,
/// input/output language mismatch and multiple default edges. Prints error
/// messages and in case it finds any errors.
int Check();
/// getNode - Return a reference to the node correponding to the
/// given tool name. Throws std::runtime_error.
/// getNode - Return a reference to the node corresponding to the given tool
/// name. Returns 0 on error.
Node* getNode(const std::string& ToolName);
const Node* getNode(const std::string& ToolName) const;
/// viewGraph - This function is meant for use from the debugger.
/// You can just say 'call G->viewGraph()' and a ghostview window
/// should pop up from the program, displaying the compilation
/// graph. This depends on there being a 'dot' and 'gv' program
/// in your path.
/// viewGraph - This function is meant for use from the debugger. You can
/// just say 'call G->viewGraph()' and a ghostview window should pop up from
/// the program, displaying the compilation graph. This depends on there
/// being a 'dot' and 'gv' program in your path.
void viewGraph();
/// writeGraph - Write Graphviz .dot source file to the current direcotry.
@ -167,12 +167,11 @@ namespace llvmc {
// Helper functions.
/// getToolsVector - Return a reference to the list of tool names
/// corresponding to the given language name. Throws
/// std::runtime_error.
/// corresponding to the given language name. Returns 0 on error.
const tools_vector_type* getToolsVector(const std::string& LangName) const;
/// PassThroughGraph - Pass the input file through the toolchain
/// starting at StartNode.
/// PassThroughGraph - Pass the input file through the toolchain starting at
/// StartNode.
int PassThroughGraph (const llvm::sys::Path& In, const Node* StartNode,
const InputLanguagesSet& InLangs,
const llvm::sys::Path& TempDir,
@ -185,26 +184,32 @@ namespace llvmc {
InputLanguagesSet& InLangs,
const LanguageMap& LangMap) const;
/// BuildInitial - Traverse the initial parts of the toolchains.
/// BuildInitial - Traverse the initial parts of the toolchains. Returns
/// non-zero value on error.
int BuildInitial(InputLanguagesSet& InLangs,
const llvm::sys::Path& TempDir,
const LanguageMap& LangMap);
/// TopologicalSort - Sort the nodes in topological order.
/// TopologicalSort - Sort the nodes in topological order. Returns non-zero
/// value on error.
int TopologicalSort(std::vector<const Node*>& Out);
/// TopologicalSortFilterJoinNodes - Call TopologicalSort and
/// filter the resulting list to include only Join nodes.
/// TopologicalSortFilterJoinNodes - Call TopologicalSort and filter the
/// resulting list to include only Join nodes. Returns non-zero value on
/// error.
int TopologicalSortFilterJoinNodes(std::vector<const Node*>& Out);
// Functions used to implement Check().
/// CheckLanguageNames - Check that output/input language names
/// match for all nodes.
/// CheckLanguageNames - Check that output/input language names match for
/// all nodes. Returns non-zero value on error (number of errors
/// encountered).
int CheckLanguageNames() const;
/// CheckMultipleDefaultEdges - check that there are no multiple
/// default default edges.
/// CheckMultipleDefaultEdges - check that there are no multiple default
/// default edges. Returns non-zero value on error (number of errors
/// encountered).
int CheckMultipleDefaultEdges() const;
/// CheckCycles - Check that there are no cycles in the graph.
/// CheckCycles - Check that there are no cycles in the graph. Returns
/// non-zero value on error (number of errors encountered).
int CheckCycles();
};