<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/56116>56116</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            FunctionType::get( ) with void argument causes clang to crash with exit code 139
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ndao-MNDS
      </td>
    </tr>
</table>

<pre>
    Hi,
I am using LLVM Legacy Pass Manager to insert a function call in a simple factorial program, the function prototype: 
` void func (void)`

Here is the code snippet I use for this:
```
Type *retTy =  Type::getVoidTy(context);
FunctionType *funcTy = FunctionType::get(retTy, false);
module->getOrInsertFunction(funcName, funcTy);
```
based on this definition 
```
  /// Create a FunctionType taking no parameters.
  static FunctionType *get(Type *Result, bool isVarArg);
```

However, clang crashes with the following output:

```
Stack dump:
Stack dump:
0.      Program arguments: clang -flegacy-pass-manager -Xclang -load -Xclang ../libSkeletonPass.so -S -emit-llvm factorial.c
1.      <eof> parser at end of file
2.      Per-function optimization
3.      Running pass 'Unnamed pass: implement Pass::getPassName()' on function '@factorial'
 #0 0x00007f885f07ad01 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe3fd01)
 #1 0x00007f885f078a3e llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe3da3e)
 #2 0x00007f885f07a0ab llvm::sys::CleanupOnSignal(unsigned long) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe3f0ab)
 #3 0x00007f885efa6dff (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xd6bdff)
 #4 0x00007f885dd20520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007f885f204b9c (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xfc9b9c)
 #6 0x00007f885f203438 llvm::FunctionType::get(llvm::Type*, bool) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xfc8438)
 #7 0x00007f885bbb5394 (anonymous namespace)::getVoidFuncVoid(llvm::StringRef, llvm::LLVMContext&, llvm::Module*) Skeleton.cpp:0:0
 #8 0x00007f885bbb54d9 (anonymous namespace)::SkeletonPass::runOnFunction(llvm::Function&) Skeleton.cpp:0:0
 #9 0x00007f885f1b53c0 llvm::FPPassManager::runOnFunction(llvm::Function&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xf7a3c0)
#10 0x00007f885f1b4dae llvm::legacy::FunctionPassManagerImpl::run(llvm::Function&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xf79dae)
#11 0x00007f885f1bc79c llvm::legacy::FunctionPassManager::run(llvm::Function&) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xf8179c)
#12 0x00007f8866366b4b clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1859b4b)
#13 0x00007f8866689855 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1b7c855)
#14 0x00007f8865511834 clang::ParseAST(clang::Sema&, bool, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xa04834)
#15 0x00007f8866685b71 clang::CodeGenAction::ExecuteAction() (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1b78b71)
#16 0x00007f8867021b57 clang::FrontendAction::Execute() (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x2514b57)
#17 0x00007f8866f793a6 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x246c3a6)
#18 0x00007f886709b45b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x258e45b)
#19 0x000000000041328b cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-14/bin/clang+0x41328b)
#20 0x00000000004114bc (/usr/lib/llvm-14/bin/clang+0x4114bc)
#21 0x00007f8866bf7ed2 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x20eaed2)
#22 0x00007f885efa6b6d llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xd6bb6d)
#23 0x00007f8866bf79c0 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x20ea9c0)
#24 0x00007f8866bc2183 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x20b5183)
#25 0x00007f8866bc240a clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x20b540a)
#26 0x00007f8866bdc507 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x20cf507)
#27 0x0000000000410f26 main (/usr/lib/llvm-14/bin/clang+0x410f26)
#28 0x00007f885dd07d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#29 0x00007f885dd07e40 call_init ./csu/../csu/libc-start.c:128:20
#30 0x00007f885dd07e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#31 0x000000000040e3b5 _start (/usr/lib/llvm-14/bin/clang+0x40e3b5)
clang: error: clang frontend command failed with exit code 139 (use -v to see invocation)
Ubuntu clang version 14.0.0-1ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang: note: diagnostic msg: 
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy9WVtz4rgS_jXkRQXlO_YDDwyZnJmtzCY1yab2jZJlGXTGyF5JTmB__bbkC5YDk4TZc1KEwrp0f31vyWmZHRZf2MRbTZzribP8ivAO1ZLxDbq9ffqGbukGkwO6x1Kib5jjDRVIlYhxSYVCGOU1J4qVHBFcFDAMQ5LtqoKiHBNVCoYLVIlyI_AOeCC1pcctMK5KdajoxF-ihv0kctBzyTKzCE28WD9MvATG2wXm-wsVFDFpyJEyo0hyVlVUoa-AHTiUAHLLJNDtybYf8_gIPIH4UlD1eEAT_xqhxwYGfDZUPQHTxwNwJyVXdK80AP9Ts_emRd_R0EBbIsOpnhZQMWy09DkuJB0S25VZXdDpxP8MK-_EV6PVjgzs1MR_xztqNhtGw90jqVIsaYZAr1p0lNGccWb0fHI1AvA3zQetBMWKguks4RT-od2Al6jCYD6qqJCzbrNUWDGCxtpoBO6evlNZF0qDT8sSvEM-YbEUm5_I0Jq3fKHPVOiNpMCAgQgst1SiF6a2jQ-VRVG-aHhlrapaHS19iuqDwuQHyupd1a87MeTMkPm7b9wVYbGpd5Qr7UYtjmlemHiYVhAP010bD9M_29mixFn_NJuBaguWPvygBVUl1yE0kyWaPqAp3TE1LYrn3TFKZqRB4bYoJv6Kljl4htY-uAXCClEO9s1RzgraLPY6yFRM-7AqK8V27G9sfMgs89tl32vOtc40erDP_A_Owa6ZedZCmsDVIpt4711YPzReGGvTeXPtZD07eJ4ETi-Hfmx8ZOL5DnL2DvzN8zgOc2eOM8dFWu6Gtjy0TO4F48qY5FFgohkdFwn8si6lAheFDBJpn4C1gAMZOFrD8L2Po3UUTAvG6_10w-tmQmewqRuA1mfuxPvk7KmfAwItRA_RHUGMsU9PQQTdPbANx8UXzLMCQqHRxmUoMmBiofDGinJwegrFqqCY19VdiwWY11zCTzBiUfLN5WoBfhYgfwiI5jjK8vwS0lmUwk6LdDAknWWeE3rOO0gTTTQyRAMPtlg0Q0t_nhOkCbkEbk4S2GmRjkak_cCPB6Y5l_SPK8yMt-zS4IU2ykkMjC1k8yGyNE1DPwk0acxLftiVtUQ6vGVlIiqxqptG_WRK6wDog4Iw3HynuYZ6HNZQVl0hjOy5b6aAGekS1GW6Gal0VnXMf482HqMNsuQttMPc2WaDmt_xQYV8bQiD8S0wiWVUF1RHnKFR7zXHtt_5IONLbDvHwL-3rc5KzghgkOFhWmrKkM1_APkrJPIe9r8ONgEsFlh3BJbMIfreDfZ_BjR254NY1kCHaTaK_ChKg7Qp7Q3Tz1CXP0EVgkJ71_QV0AMep68Z3nCoRYzIz3zDOG3jYbDkC8UZFQ8UC7K9q7QAEjpULtXrpStoXP9D-RurHqENgd7w54tu4depJW_G9iB-LYKtEpatCVbQ72XNTM3ZXzVdVwrstrKrdPUimKLrrlYPNkEziqETXGc6JukbG6Hlgf_3Gd1AnkKIG7MHxu5uHCZgV8vwvmX4KE7iMLyUfDonsNsiPyxpURi6bgxVbqDOe93CLR8ebXd6oDvcGqopDB8pEKegYScAxhaycCR4mM7dE07YGroJgj0ltaKd7d_Z5ZxRVQz8LEDDchrNHQ9y73wI6EboUtO73hDRL2HxQjcAVhaWuaUcSGw-jmzl7CrotfW5TGFO6Gn9nAf_3tR1Em8QEYBj4Y1t3YGXh3b6apAdYT-XBL9G-UqspnxfqteYAgwLZ1ddm7_A9b0YcBJ3vcPMzvJLIfBBZyV_RbZYdMlraRIAZCRrDAaa64AB3FqKHrQmO9WwblLN5qYR2TSMBsIQo-eMMIJ3kA_S1Fssmq7lT2k-p5l3qVodimG3Rd4b9-RplA1y-Uofkr9TUsLR-dA1bP3ZBee0OFi6705wa2H0b65d2iPee9PvqXYfQFmo_bFSEmi1Bt6YCfbcNQGrlQvOCefqbBz4J13mONgUPzgQDQePNa8rKYOStF6T_d51m4cUS0Z0_WEalXFFa7EeWCuBmb4MaKZH5HBR6FgrxXG-YTno-43bGm_-BadI7EbRC2z1Eg9qz1n1msDHrxJrp3MrS4w26gXn2o-fLF22SfDXxE5DkMoSOxyLHTj4o2L_VqbyvMwwe8sA85l-agcWf6L60qNptle9K1SYaS8wtxTvV1PnL_-KtkAZlrYiW1sZCZ35OWTXg99WQTlRSc5p-f-rrUv1RHJQg6Wn-agoODmoThetD1YGvc8iHNt3Hs48Sxy0XmtokHawUGt9f27qI9L3hkRq5OYKUR5kRitw1BteqaKVZ7xptgUthTF8udGRazLmSgPHXNSv9dXwmFHzU1OfGuozosl5mqjn9ETtO72OqCXKKSlOEvfn-pwfHmm7tv4d6qchaqh-zAJmZ2-BzqsQFUJn6O46N2_bNfCrxr9yDH1R1lwz0z1TzcsF1zc-pt8sTJ_12w9JKWKD5qpl80dac1W3tMF3pb4eherozJypW5tJt30BYQ51GkjrrxUZuGyzZAuHoQztAIA-yqOqlGzfvqPRfVsBQK-ZEaZXi1aDLTAvlXm7kvUnV7STZmZ0UX6VLfws8RN8pZgq6OLctRbSAWf0Y_qF7o4cvArUI1vZQUXmxv6EIq9qUSy2SlXmPse8ftjAojqdgQ1am3amrUT5X8gZ8MikrKkOgTBy3ehquwh9B86UURx4EU38zKcU-goaxJkfBjgi9KrAKS3kYhJ-mngepy_IkIDfk_D6ii08x_OcyE2cJPACf5ak1Eu9JPccHIRx5E_AgcCLi5nGMSvF5kosDKS03kiYLKAwyOMkluYOlhp2QB_XaluKBc9wOf32-_XDlWG-MOD_ATBgLcA">