[llvm-commits] CVS: llvm/tools/lto/lto.cpp

Devang Patel dpatel at apple.com
Wed Feb 7 17:44:33 PST 2007


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20070207/88d555f3/attachment.html>


More information about the llvm-commits mailing list