On Feb 7, 2007, at 5:41 PM, Bill Wendling wrote:

   CodeGenPasses->add(new TargetData(*Target->getTargetData()));
- Target->addPassesToEmitFile(*CodeGenPasses, Out, TargetMachine::AssemblyFile,
-                              true);
+
+  MachineCodeEmitter *MCE = 0;
+
+  switch (Target->addPassesToEmitFile(*CodeGenPasses, Out,
+ TargetMachine::AssemblyFile, true)) {
+  default:
+    assert(0 && "Invalid file model!");
+    return LTO_UNKNOWN;
+  case FileModel::Error:
+    // FIXME: Error...
+    return LTO_UNKNOWN;
+  case FileModel::AsmFile:
+    break;
+  case FileModel::MachOFile:
+    MCE = AddMachOWriter(*CodeGenPasses, Out, *Target);
+    break;
+  case FileModel::ElfFile:
+    MCE = AddELFWriter(*CodeGenPasses, Out, *Target);
+    break;
+  }
+
+  if (Target->addPassesToEmitFileFinish(*CodeGenPasses, MCE, true)) {
+    // FIXME: Error...
+    return LTO_UNKNOWN;
+  }

Please avoid assert() in lto. Let linker handle all failures.
Use LTO_WRITE_FAILURE instead of LTO_UNKNOWN.

Thanks,
-
Devang
_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to