<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/138037>138037</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Debian Linux, LLVMv17.0.6, C++] LLVM crashes when compiling to assembler
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
TheoW03
</td>
</tr>
</table>
<pre>
I have ran into this issue on 14 as well.
But I cant generate an assembler file without the LLVM crashing
This is the error I get
```
terminate called without an active exception
Aborted (core dumped)
```
and here is the code
```C++
llvm::LLVMContext context;
llvm::Module module("MyModule", context);
llvm::IRBuilder<> builder(context);
// Initialize the target registry etc.llvm::InitializeAllTargets();
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargets();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllAsmParsers();
llvm::InitializeAllAsmPrinters();
std::string Error;
auto TargetTriple = llvm::sys::getDefaultTargetTriple();
auto Target = llvm::TargetRegistry::lookupTarget(TargetTriple, Error);
module.setTargetTriple(TargetTriple);
if (output.print_llvm == 1)
{
module.print(llvm::outs(), nullptr);
}
if (!Target)
{
std::cout << Error << std::endl;
return;
}
auto CPU = "generic";
auto Features = "";
llvm::TargetOptions opt;
auto TargetMachine = Target->createTargetMachine(TargetTriple, CPU, Features, opt, llvm::Reloc::PIC_);
module.setDataLayout(TargetMachine->createDataLayout());
llvm::legacy::PassManager pass;
llvm::raw_fd_ostream dest(output.output_files[i], EC, llvm::sys::fs::OF_None);
if (EC)
{
llvm::errs() << "Could not open file: " << EC.message();
return;
}
auto FileType = llvm::CodeGenFileType::CGFT_AssemblyFile;
if (TargetMachine->addPassesToEmitFile(pass, dest, nullptr, FileType))
{
llvm::errs() << "TargetMachine can't emit a file of this type";
return;
}
pass.run(module);
dest.flush();
```
I know this is a LLVM error because it works with generating an IR file, compiled binary, and an unoptimized IR file.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVs2O4jgQfhpzKQ0KDr8HDunQjJC6d1otZveITFIh3nHsyHaaYZ5-ZTuBhEa7o42QTOz6r8-VjxnDTxJxTWZPZLYZscaWSq_3Jaq_onh0VPllvYOSfSBoJoFLq8CW3AA3pkFQEiZTYAbOKMSYRMlTY2EHGZMWTihRM4vAJDBjsDoK1FBwgXDmtlSNBVsivLz8-QqZZqbk8kSihETJPjjwx6i10rCDE1oIp2Qetb8osagrLp2TjAmB-dWy85lZ_oGAPzOsLVeSRElyVNpiDoQuM6UR8qaqMSd0dWeWRAmTOZSosYsjUzneB5AS-uR-UQJCfFQkTkicuHxSJS3-tJCFlcReBqAn9qryRiBUfiF0SSh9vby2b5TQ9KpMV0F_6Gb3_tRwkaMmcUriZzi2by6zT3qEbgndwk5yy5ngv9CnZJl2VdV44sbqC6DNxj0HV-FEiL0XNT7OXjiDjB4o7GShBkr_Lj4U_S_jr-lvmU5M9ca0Qf271p2C5tLeaxibB2ljNZcneHbIvFljjVUQIttrXgsEEm96PszFhD8ntBssWCNsX_pBaXsW72yFzfe2cWFPKPWjqcMJocuh7bSN9ppMwN3Y4H0Qw9detXjhro1qbN3Yce0KdHABuchccJNwi4AsOgX3tG68OKHLWwaquXabpiAbIWqrB_7IYnMrRXBO6KTL74Gva38yNwD8tWjT7l6uEihzcfPkHo220fKRd9-F9O27bwGh1I81nrlLOuz9FpltNJpO8CrxCW4hiW9-KhlQtX2IoleWlVwGGIWdLyR-zjQyiwOJB91O3767pQvJ_XduaNqL4h2FysLft116eISNDbPshV1Uc0NU6_MWykDG9_PhvBJ4YlkL1TdmzCuT7IQaamZMr-xdR26Kmp0PRX5QxmpkFeRo7A2HYTm4j4ohsydOZhsP9nSY6vXuFe36bXv4Q8khwLsnYM2ZWN2dDPHWPTc3qLuR0SGOUJqqRuQglQVVo_TfPxIn7uSK0XRcoTHshPcTqv_cI_QW1OZuJ6CRC9xf6vsplKocv6LsTtvNr9v9IQmf6MvWB9jD7bAun1DA8tz1E81ePVfcenW69G2laduu3g1Pr5G1WPl0j3-zrsNLkjFJ6MICVtwCCyxDFYGqWO-M_q-yujzGupGELrtP9ephdVyi40I0phxM8iGp2MEPqc4dgQIWyE-gOEfMWGMQuIWz0j-MpzIdiXLfGyZh9x7w49lBVXPHeI5cMn1xW46yMAmNVLXlFf-FeacwbpnLKF_H-SpesRGuJ4vpPJquZov5qFwvcLqcY7xarSZRMYnjRTHNGM3ms-mKFVmxGvE1jegsmsYRnUznk_kYF9nkuJoURXHMZlE8JdMIK8aFZxBjpU8jzxDXk3gZxYuRYEcUxrNMSiWeA390XZltRnrtlL4cm5Mh00hwY83NjOVWeHq6wSNnEl64bH66dF3tPiaLcTSe-5HXkrHZpkcp0cC5RNlWy1XRqhsZHTVarEtraz8VPEc6cVs2x3GmKkK3HoFh-VJr9TdmltCtj9wQum1T-1jTfwIAAP__NDdcew">