diff options
| author | Chris Lattner <sabre@nondot.org> | 2002-12-13 16:48:57 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2002-12-13 16:48:57 +0000 |
| commit | 78576164024dac1a7a89d0530ef218a88778ca73 (patch) | |
| tree | 7292797843c7b18f9d247c3ac8d74edd2a78a235 /llvm/tools/jello/jello.cpp | |
| parent | bf6ad7d307369fe809dea2af1ccb88d2fe3103c1 (diff) | |
| download | bcm5719-llvm-78576164024dac1a7a89d0530ef218a88778ca73.tar.gz bcm5719-llvm-78576164024dac1a7a89d0530ef218a88778ca73.zip | |
Pass command line arguments to main
llvm-svn: 5027
Diffstat (limited to 'llvm/tools/jello/jello.cpp')
| -rw-r--r-- | llvm/tools/jello/jello.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/llvm/tools/jello/jello.cpp b/llvm/tools/jello/jello.cpp index 52541f012c7..7fe37b02f65 100644 --- a/llvm/tools/jello/jello.cpp +++ b/llvm/tools/jello/jello.cpp @@ -16,6 +16,9 @@ namespace { cl::opt<std::string> InputFile(cl::desc("<input bytecode>"), cl::Positional, cl::init("-")); + cl::list<std::string> + InputArgv(cl::ConsumeAfter, cl::desc("<program arguments>...")); + cl::opt<std::string> MainFunction("f", cl::desc("Function to execute"), cl::init("main"), cl::value_desc("function name")); @@ -41,8 +44,18 @@ int main(int argc, char **argv) { return 1; } + // Build an argv vector... + InputArgv.insert(InputArgv.begin(), InputFile); + char **Argv = new char*[InputArgv.size()+1]; + for (unsigned i = 0, e = InputArgv.size(); i != e; ++i) { + Argv[i] = new char[InputArgv[i].size()+1]; + std::copy(InputArgv[i].begin(), InputArgv[i].end(), Argv[i]); + Argv[i][InputArgv[i].size()] = 0; + } + Argv[InputArgv.size()] = 0; + // Create the virtual machine object... - VM TheVM(argv[0], *M.get(), *Target.get()); + VM TheVM(argv[0], Argv, *M.get(), *Target.get()); Function *F = M.get()->getNamedFunction(MainFunction); if (F == 0) { |

