<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">