- // TODO: Iterate over the -l list and link in any modules containing
- // global symbols that have not been resolved so far.
-
- if (DumpAsm) std::cerr << "Here's the assembly:\n" << *Composite.get();
-
- // FIXME: cout is not binary!
- std::ostream *Out = &std::cout; // Default to printing to stdout...
- if (OutputFilename != "-") {
- if (!Force && std::ifstream(OutputFilename.c_str())) {
- // If force is not specified, make sure not to overwrite a file!
- std::cerr << argv[0] << ": error opening '" << OutputFilename
- << "': file exists!\n"
- << "Use -f command line argument to force output\n";
- return 1;
- }
- std::ios::openmode io_mode = std::ios::out | std::ios::trunc |
- std::ios::binary;
- Out = new std::ofstream(OutputFilename.c_str(), io_mode);
- if (!Out->good()) {
- std::cerr << argv[0] << ": error opening '" << OutputFilename << "'!\n";
- return 1;
- }
-
- // Make sure that the Out file gets unlinked from the disk if we get a
- // SIGINT
- sys::RemoveFileOnSignal(sys::Path(OutputFilename));
+ for (unsigned i = BaseArg+1; i < InputFilenames.size(); ++i) {
+ std::auto_ptr<Module> M(LoadFile(argv[0],
+ InputFilenames[i], Context));
+ if (M.get() == 0) {
+ errs() << argv[0] << ": error loading file '" <<InputFilenames[i]<< "'\n";
+ return 1;