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

    <tr>
        <th>Summary</th>
        <td>
            [clang] c++20 modules | using template function  imported from other translation unit causes crash
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          SasisaDev
      </td>
    </tr>
</table>

<pre>
    Minimal reproduction code:
```c++
// Provider.cppm
export module Provider;

// Scope doesn't matter, this function may be in class, static or local method, or in global scope.
export 
template <class ObjectType>
ObjectType* MyFunction() {
        return nullptr; // content of function doesn't matter
}
```
```c++
// Consumer.cppm
export module Consumer;

import Provider;

void MyOtherFunction() {
 MyFunction<int>();
}
```

Causes this:
Error: Command failed: clang++ -std=c++20 -fmodules  -g -O0  -Wall  -DPLATFORM_WINDOWS -fprebuilt-module-path=D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Object.lib D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Object.lib -fmodule-file=D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\World_temp\Level.pcm D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\World_temp\Level_interface.obj D:\UnixProjects\General\Bismuth\BismuthEngine\Source\Engine\World\WorldObject.cppm --precompile -o D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\World_temp\WorldObject.pcm
clang++: warning: D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Object.lib: 'linker' input unused [-Wunused-command-line-argument]
clang++: warning: D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\Object.lib: 'linker' input unused [-Wunused-command-line-argument]
clang++: warning: D:\UnixProjects\General\Bismuth\BismuthEngine\Intermediate\Modules\World_temp\Level_interface.obj: 'linker' input unused [-Wunused-command-line-argument]
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: clang++ -std=c++20 -fmodules -g -O0 -Wall -DPLATFORM_WINDOWS -fprebuilt-module-path=D:\\UnixProjects\\General\\Bismuth\\BismuthEngine\\Intermediate\\Modules D:\\UnixProjects\\General\\Bismuth\\BismuthEngine\\Intermediate\\Modules\\Object.lib D:\\UnixProjects\\General\\Bismuth\\BismuthEngine\\Intermediate\\Modules\\Object.lib -fmodule-file=D:\\UnixProjects\\General\\Bismuth\\BismuthEngine\\Intermediate\\Modules\\World_temp\\Level.pcm D:\\UnixProjects\\General\\Bismuth\\BismuthEngine\\Intermediate\\Modules\\World_temp\\Level_interface.obj D:\\UnixProjects\\General\\Bismuth\\BismuthEngine\\Source\\Engine\\World\\WorldObject.cppm --precompile -o D:\\UnixProjects\\General\\Bismuth\\BismuthEngine\\Intermediate\\Modules\\World_temp\\WorldObject.pcm
1. <eof> parser at end of file
Exception Code: 0xC0000005
 #0 0x00007ff7effa5cef C:\Program Files\LLVM\bin\clang++.exe 0x19b5cef C:\Program Files\LLVM\bin\clang++.exe 0x198b3b0
 #1 0x00007ff7effa5cef C:\Program Files\LLVM\bin\clang++.exe 0x19b638e C:\Program Files\LLVM\bin\clang++.exe 0x2e25279
 #2 0x00007ff7effa5cef C:\Program Files\LLVM\bin\clang++.exe 0x2e27d69 C:\Program Files\LLVM\bin\clang++.exe 0x195e69b
 #3 0x00007ff7effa5cef C:\Program Files\LLVM\bin\clang++.exe 0x195f0b6 C:\Program Files\LLVM\bin\clang++.exe 0x3b200a7
 #4 0x00007ff7effa5cef C:\Program Files\LLVM\bin\clang++.exe 0x313dffe C:\Program Files\LLVM\bin\clang++.exe 0x1a46cc2
 #5 0x00007ff7effa5cef C:\Program Files\LLVM\bin\clang++.exe 0x7d580d C:\Program Files\LLVM\bin\clang++.exe 0x866e9e
 #6 0x00007ff7effa5cef C:\Program Files\LLVM\bin\clang++.exe 0x7b1b C:\Program Files\LLVM\bin\clang++.exe 0x4a73
 #7 0x00007ff7effa5cef C:\Program Files\LLVM\bin\clang++.exe 0x1827b96 C:\Program Files\LLVM\bin\clang++.exe 0x66a78f
 #8 0x00007ff7effa5cef C:\Program Files\LLVM\bin\clang++.exe 0x182791b C:\Program Files\LLVM\bin\clang++.exe 0x792d15
 #9 0x00007ff7effa5cef C:\Program Files\LLVM\bin\clang++.exe 0x79305d C:\Program Files\LLVM\bin\clang++.exe 0x7ad0fc
#10 0x00007ff7effa5cef C:\Program Files\LLVM\bin\clang++.exe 0x438f C:\Program Files\LLVM\bin\clang++.exe 0x41ea730
#11 0x00007ff7effa5cef (C:\Program Files\LLVM\bin\clang++.exe+0x19b5cef)
#12 0x00007ff7eff7b3b0 (C:\Program Files\LLVM\bin\clang++.exe+0x198b3b0)
0x00007FF7EFFA5CEF, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x19B5CEF byte(s)
0x00007FF7EFF7B3B0, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x198B3B0 byte(s)
0x00007FF7EFFA638E, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x19B638E byte(s)
0x00007FF7F1415279, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x2E25279 byte(s)
0x00007FF7F1417D69, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x2E27D69 byte(s)
0x00007FF7EFF4E69B, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x195E69B byte(s)
0x00007FF7EFF4F0B6, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x195F0B6 byte(s)
0x00007FF7F21100A7, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x3B200A7 byte(s)
0x00007FF7F172DFFE, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x313DFFE byte(s)
0x00007FF7F0036CC2, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x1A46CC2 byte(s)
0x00007FF7EEDC580D, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x7D580D byte(s)
0x00007FF7EEE56E9E, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x866E9E byte(s)
0x00007FF7EE5F7B1B, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x7B1B byte(s)
0x00007FF7EE5F4A73, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x4A73 byte(s)
0x00007FF7EFE17B96, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x1827B96 byte(s)
0x00007FF7EEC5A78F, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x66A78F byte(s)
0x00007FF7EFE1791B, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x182791B byte(s)
0x00007FF7EED82D15, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x792D15 byte(s)
0x00007FF7EED8305D, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x79305D byte(s)
0x00007FF7EED9D0FC, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x7AD0FC byte(s)
0x00007FF7EE5F438F, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x438F byte(s)
0x00007FF7F27DA730, C:\Program Files\LLVM\bin\clang++.exe(0x00007FF7EE5F0000) + 0x41EA730 byte(s)
0x00007FFA74287614, C:\WINDOWS\System32\KERNEL32.DLL(0x00007FFA74270000) + 0x17614 byte(s), BaseThreadInitThunk() + 0x14 byte(s)

0x00007FFA74BC26A1, C:\WINDOWS\SYSTEM32\ntdll.dll(0x00007FFA74B70000) + 0x526A1 byte(s), RtlUserThreadStart() + 0x21 byte(s)
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 15.0.6
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin
clang++: note: diagnostic msg:
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg: C:\Users\Valera\AppData\Local\Temp\WorldObject-669c29.cppm
clang++: note: diagnostic msg: C:\Users\Valera\AppData\Local\Temp\WorldObject-669c29.cache
clang++: note: diagnostic msg: C:\Users\Valera\AppData\Local\Temp\WorldObject-669c29.sh
clang++: note: diagnostic msg:

********************
```

[WorldObject-669c29.zip](https://github.com/llvm/llvm-project/files/10411156/WorldObject-669c29.zip)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWktzo7gW_jXK5hQuEBaPRRY2j57UdTqpjntSd9UlQLY1DYKSRDq5v_6WwK8kjj3tNj2bSbliLKTvfOchHcERVYovBWPXiEwRia9oq1e1vH6giisas6errC5erm-54BUtQbJG1kWba14LyOuCIXeC7BjZE-TZ_SdHeGo-fStOEU7hXtZPvGBylDdN1d9hz00tNVR10ZZs2wG5m4H7wx_yumFQ1EwJhH0NFdWaSYQj0CuuYNGKnlBFXyBjwAXkJVXKdFCaap5DLaGsc1pCxfSqLsydWpqOy7LOaAnKSBi9Ytb_0KxqSqoZIDfqQOEu-4vlev7SMOQmfae9JjyB25d0TQjhAOEQkL9WCtZ_kulWChBtWTba6AxrRfNaaCY01IudUu_U7i3jx2_s_jfcENVCtdURN2w6vHEDr7pOHzjpqeYF3L7c6RWTH2q-ZxQ34kIb23V9dmAfadT9j2irmOr8vQ25RMpaIncCUV1VVBSwoLxkhWnJSyqWvQXAUrpAbrw2CLbBWvTqKgBrCdadDWA90rIEsOL72WSe3n25_fZ48zm-e3wAa9FIlrW81FY_ymqoXiE3jg0PEn0V_Ple1iYAFCLRJyaYpCUi0ZSrqtWr3VUillwwRKIboZmsWMGpNj9v12QuDYhI1AfmqOTZwOgbk1oLXrIBjINI9FjLsvhm5iMi0Yw9sXLU5NUQer2X9I2bvguas1Gd_fULMh_qVubmYtvSCdt8ry1qpidYViNZXlcNLxlY9eCK7hNo8vXysDePzLT6QaXgYmkuB40nIwBhv-Tiu1nnfeCiaTW0olWsAESm1mN_beX91LdKLphF5bKtmNCIxP_Sv3TUX0qp-1kyeUhAtVnFNVDI2qXZVpgEo2tYad10K3yXsZZcr9pslNcVwmlZPm2-rKZXGuGUK9UyZbKbyQBc5GVbMNArBrmkagUZzb9rSXNmcn7T7V9ypgxl1c9FHHUjqVJ1boxSgGwFqFzyRq93BA-a5t-haKtmm3vsUZ_K72W9lLSCjZrqJ7LPOvn0ueeM1PM-AF7FwKswOBAJ74PhfTIaUET_432G-p0iP0hbg1N4NdcOpbN_hsHhNPfrXLZZbz_x7eW-n0h_v90wB9OiMzLPA6xeIDeBhkrFJFANTBTd1t0EU79Dfc5Z0-3io_5ZCeznyO7-yHpjjLBrg_1smvzFwmeLBSU5W0DU67tZX1LeM5zN_rxFJMq4QCTaW2dG7JmB_eyE2S-NDjI3s3fMnIsy89yAnTkaM0ywH-6Y4csxwwz7hReerRdhXpjtmLmXtBlZ2Jl35mg3w7ZN_R2z8eWYuY5bLBbnetOhYy_P8Y4ZuRwzvyCBXZw5OPA8FrIdL--CvDInO3PomPrujpN_wfgKsJ-F58aX51E_WOyIBZclFp5tLz_EhbO3voYX9GLo2uTc6PJpYS_yzRsZ17nguj92g7OHOoz6rr2jdXDRRzg4Ax7h6TYnIRzuZLxZvn2Tdn5NRp-5NjLW6GnqJ2k6IVGSmn3-WejBHlZCUnPdvdrC026FnhpwyF606aoOE_Cn7tQeikBgwE8QmHhukAxmAQN-jEDqjJ0uew9CACfd1uAUAT_2hiNgwE-4YJx44XQoFxADfopAak-9wQgY8KMuwI5j2xN_GALuFBvw4zHg4zhNB5oFruMa8KMEbNv1oggP5ILJ2IAfjYEkjkhgx8MQ8GODfVx-QrwkHMgDgWewj8snqT91BpqEBvmU9PHEd4eRbpCPz__E8afhUPM_wAb8uPoRmfjBQGnY8wz2SQOEQzm_36-e8H8c4NghA0VfaLBPyXdtMtTsN_viE7M_DmM7jQaSPzHYJ-efO1QAGuTj6c-PJ2aXPYx0JzHgRwhM_DEOfM8Z7xFYv2ZGJHp4UZpVLkYk-k_y5XMyc_Eons32pRoA_03QG7xXMnEEU6rYfCUZLW4E1_NVK75vasH9oPF7lu-5TiPsTZzDXP_7ME9uO65CF2U5KsryDdHpG6LEgL0l-kWXXxWTPdcHTaV-xRM773m-KcewTfm5a4eF7Ir3BeSvqtFQtAx0DYovBS3NM06rGFhPXRtjwMVTndO-Zr4vB56YVLwW4JCRPfL6O3Mql0wbmc-B980bW01u_eCiqH8oq1JP62fLXieo6oKVpm9TK_7c37oRStOyZEXM-8r5yVg8pLmodfcys-B0KWqleQ6VWu6OguBf-OxFxLpSNJnPJ9EfMP8jgfRuNrt7vPn8CdKbWfIA87uuefr1E3xJ7u--zLcc7g9Vejpfflzt2XaQrDstYu5SvYX8u0bYGNWElzHmn7RkkiISTZomptpczeq8e109f1d6tTwvzHG4d0Lj94ql-Yr9A3LV6qxAu1S4HTpxgsj0ANH_8QaZJBr8dKFy0c0tnDr22HEc4iGcfoCPw6vi2i1CN6RX7NrxfNdz7MB1r1bXfl4UgT-mdpGNsUMIJV7mEN-zs8DJ7Ky44tfYxq7tOK7jEJe4IzfzvJCxMfHckNCxjcY2qygvR4beqJbLq66Cek3CMAyvSpqxUnVnwTAW7Ad0NxHGiMRX8rpTKWuXCo3tkiutdiia67I7RNa7kMSwK3luCp7Ij6BVXCxhe6xqe8wJ-kNGrDALaQW1XjEJWlKhym51hFZwDXl_DKgr7V61srw-v17cKfz_AAAA__9oXXCm">