in lib/LLVMSupport/Support/Triple.cpp [635:704]
static Triple::ObjectFormatType getDefaultFormat(const Triple &T) {
switch (T.getArch()) {
case Triple::UnknownArch:
case Triple::aarch64:
case Triple::arm:
case Triple::thumb:
case Triple::x86:
case Triple::x86_64:
if (T.isOSDarwin())
return Triple::MachO;
else if (T.isOSWindows())
return Triple::COFF;
return Triple::ELF;
case Triple::aarch64_be:
case Triple::arc:
case Triple::amdgcn:
case Triple::amdil:
case Triple::amdil64:
case Triple::armeb:
case Triple::avr:
case Triple::bpfeb:
case Triple::bpfel:
case Triple::hexagon:
case Triple::lanai:
case Triple::hsail:
case Triple::hsail64:
case Triple::kalimba:
case Triple::le32:
case Triple::le64:
case Triple::mips:
case Triple::mips64:
case Triple::mips64el:
case Triple::mipsel:
case Triple::msp430:
case Triple::nvptx:
case Triple::nvptx64:
case Triple::ppc64le:
case Triple::r600:
case Triple::renderscript32:
case Triple::renderscript64:
case Triple::riscv32:
case Triple::riscv64:
case Triple::shave:
case Triple::sparc:
case Triple::sparcel:
case Triple::sparcv9:
case Triple::spir:
case Triple::spir64:
case Triple::systemz:
case Triple::tce:
case Triple::tcele:
case Triple::thumbeb:
case Triple::xcore:
return Triple::ELF;
case Triple::ppc:
case Triple::ppc64:
if (T.isOSDarwin())
return Triple::MachO;
else if (T.isOSAIX())
return Triple::XCOFF;
return Triple::ELF;
case Triple::wasm32:
case Triple::wasm64:
return Triple::Wasm;
}
llvm_unreachable("unknown architecture");
}