diff options
author | Chris Lattner <sabre@nondot.org> | 2003-10-14 21:52:52 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-10-14 21:52:52 +0000 |
commit | eeed98382158c5049e7700c768a74b9122fffd71 (patch) | |
tree | c5786092f9c238e7462c62193458904fbb5c96f0 /tools/bugpoint/ToolRunner.h | |
parent | b8d15b2ad0a2266b275a00f07410e6c9d9ca6695 (diff) |
Generalize abstract interpreter interface to allow linking in an arbitrary number of shared objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9129 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/bugpoint/ToolRunner.h')
-rw-r--r-- | tools/bugpoint/ToolRunner.h | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/tools/bugpoint/ToolRunner.h b/tools/bugpoint/ToolRunner.h index 77ae10904b..3652ff65ed 100644 --- a/tools/bugpoint/ToolRunner.h +++ b/tools/bugpoint/ToolRunner.h @@ -27,18 +27,28 @@ public: static GCC* create(const std::string &ProgramPath, std::string &Message); - + /// ExecuteProgram - Execute the program specified by "ProgramFile" (which is + /// either a .s file, or a .c file, specified by FileType), with the specified + /// arguments. Standard input is specified with InputFile, and standard + /// Output is captured to the specified OutputFile location. The SharedLibs + /// option specifies optional native shared objects that can be loaded into + /// the program for execution. + /// int ExecuteProgram(const std::string &ProgramFile, const std::vector<std::string> &Args, FileType fileType, const std::string &InputFile, const std::string &OutputFile, - const std::string &SharedLib = ""); + const std::vector<std::string> &SharedLibs = + std::vector<std::string>()); - int MakeSharedObject(const std::string &InputFile, - FileType fileType, + /// MakeSharedObject - This compiles the specified file (which is either a .c + /// file or a .s file) into a shared object. + /// + int MakeSharedObject(const std::string &InputFile, FileType fileType, std::string &OutputFile); +private: void ProcessFailure(const char **Args); }; @@ -68,7 +78,8 @@ struct AbstractInterpreter { const std::vector<std::string> &Args, const std::string &InputFile, const std::string &OutputFile, - const std::string &SharedLib = "") = 0; + const std::vector<std::string> &SharedLibs = + std::vector<std::string>()) = 0; }; //===---------------------------------------------------------------------===// @@ -85,7 +96,8 @@ public: const std::vector<std::string> &Args, const std::string &InputFile, const std::string &OutputFile, - const std::string &SharedLib = ""); + const std::vector<std::string> &SharedLibs = + std::vector<std::string>()); // Sometimes we just want to go half-way and only generate the .c file, // not necessarily compile it with GCC and run the program. @@ -109,7 +121,8 @@ public: const std::vector<std::string> &Args, const std::string &InputFile, const std::string &OutputFile, - const std::string &SharedLib = ""); + const std::vector<std::string> &SharedLibs = + std::vector<std::string>()); // Sometimes we just want to go half-way and only generate the .s file, // not necessarily compile it all the way and run the program. |