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

    <tr>
        <th>Summary</th>
        <td>
            Crash when running pass 'Adapt OCL types for SPIR-V' on module 'builtins.link.spirv64-mesa3d-.bc'
        </td>
    </tr>

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

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

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

<pre>
    I was compiling libclc from commit 5bd87350a5ae429baf8f373cb226a57b62f87280

```c
llvm-spirv: …/install/include/llvm/IR/Type.h:384: llvm::Type *llvm::Type::getNonOpaquePointerElementType() const: Assertion `NumContainedTys && "Attempting to get element type of opaque pointer"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: …/install/bin/llvm-spirv --spirv-max-version=1.1 -o spirv64-mesa3d-.spv builtins.link.spirv64-mesa3d-.bc
1.      Running pass 'Adapt OCL types for SPIR-V' on module 'builtins.link.spirv64-mesa3d-.bc'.
llvm-spirv: …/install/include/llvm/IR/Type.h:384: llvm::Type *llvm::Type::getNonOpaquePointerElementType() const: Assertion `NumContainedTys && "Attempting to get element type of opaque pointer"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: …/install/bin/llvm-spirv --spirv-max-version=1.1 -o spirv-mesa3d-.spv builtins.link.spirv-mesa3d-.bc
1.      Running pass 'Adapt OCL types for SPIR-V' on module 'builtins.link.spirv-mesa3d-.bc'.
 #0 0x000000000102b6ba llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) …/llvm-project/llvm/lib/Support/Unix/Signals.inc:565:11
 #1 0x000000000102b86b PrintStackTraceSignalHandler(void*) …/llvm-project/llvm/lib/Support/Unix/Signals.inc:632:1
 #2 0x0000000001029f06 llvm::sys::RunSignalHandlers() …/llvm-project/llvm/lib/Support/Signals.cpp:103:5
 #3 0x000000000102bfa5 SignalHandler(int) …/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007fe00f595520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007fe00f5e9828 __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #6 0x00007fe00f5e9828 __pthread_kill_internal ./nptl/pthread_kill.c:80:10
 #7 0x00007fe00f5e9828 pthread_kill ./nptl/pthread_kill.c:91:10
 #8 0x00007fe00f595476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #9 0x00007fe00f57b7b7 abort ./stdlib/abort.c:81:7
#10 0x00007fe00f57b6db get_sysdep_segment_value ./intl/loadmsgcat.c:509:8
#11 0x00007fe00f57b6db _nl_load_domain ./intl/loadmsgcat.c:970:34
#12 0x00007fe00f58ce26 (/lib/x86_64-linux-gnu/libc.so.6+0x39e26)
#13 0x000000000045f0b7 llvm::Type::getNonOpaquePointerElementType() const …/llvm-project/llvm/include/llvm/IR/Type.h:0:5
#14 0x0000000000507395 llvm::Type::getPointerElementType() const (…/install/bin/llvm-spirv+0x507395)
#15 0x000000000052ea9d SPIRV::isPointerToOpaqueStructType(llvm::Type*) (…/install/bin/llvm-spirv+0x52ea9d)
#16 0x00000000006e380d SPIRV::OCLTypeToSPIRVBase::adaptFunctionArguments(llvm::Function*) (…/install/bin/llvm-spirv+0x6e380d)
#17 0x00000000006e3293 SPIRV::OCLTypeToSPIRVBase::runOCLTypeToSPIRV(llvm::Module&) (…/install/bin/llvm-spirv+0x6e3293)
#18 0x00000000006e30d1 SPIRV::OCLTypeToSPIRVLegacy::runOnModule(llvm::Module&) (…/install/bin/llvm-spirv+0x6e30d1)
#19 0x0000000000e1c6e9 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) …/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1545:23
#20 0x0000000000e1c25d llvm::legacy::PassManagerImpl::run(llvm::Module&) …/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:16
#21 0x0000000000e20f61 llvm::legacy::PassManager::run(llvm::Module&) …/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1672:3
#22 0x0000000000581832 llvm::writeSpirv(llvm::Module*, SPIRV::TranslatorOpts const&, std::ostream&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (…/install/bin/llvm-spirv+0x581832)
#23 0x000000000042a69d convertLLVMToSPIRV(SPIRV::TranslatorOpts const&) llvm-spirv.cpp:0:0
#24 0x0000000000428212 main (…/install/bin/llvm-spirv+0x428212)
#25 0x00007fe00f57cfd0 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#26 0x00007fe00f57d07d call_init ./csu/../csu/libc-start.c:128:20
#27 0x00007fe00f57d07d __libc_start_main ./csu/../csu/libc-start.c:379:5
#28 0x0000000000424ea5 _start (…/install/bin/llvm-spirv+0x424ea5)
make[2]: *** [CMakeFiles/prepare-spirv-mesa3d-.spv.dir/build.make:80: spirv-mesa3d-.spv] Aborted
make[2]: *** Deleting file 'spirv-mesa3d-.spv'
make[1]: *** [CMakeFiles/Makefile2:2277: CMakeFiles/prepare-spirv-mesa3d-.spv.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
 #0 0x000000000102b6ba llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) …/llvm-project/llvm/lib/Support/Unix/Signals.inc:565:11
 #1 0x000000000102b86b PrintStackTraceSignalHandler(void*) …/llvm-project/llvm/lib/Support/Unix/Signals.inc:632:1
 #2 0x0000000001029f06 llvm::sys::RunSignalHandlers() …/llvm-project/llvm/lib/Support/Signals.cpp:103:5
 #3 0x000000000102bfa5 SignalHandler(int) …/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007f546737b520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007f54673cf828 __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #6 0x00007f54673cf828 __pthread_kill_internal ./nptl/pthread_kill.c:80:10
 #7 0x00007f54673cf828 pthread_kill ./nptl/pthread_kill.c:91:10
 #8 0x00007f546737b476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #9 0x00007f54673617b7 abort ./stdlib/abort.c:81:7
#10 0x00007f54673616db get_sysdep_segment_value ./intl/loadmsgcat.c:509:8
#11 0x00007f54673616db _nl_load_domain ./intl/loadmsgcat.c:970:34
#12 0x00007f5467372e26 (/lib/x86_64-linux-gnu/libc.so.6+0x39e26)
#13 0x000000000045f0b7 llvm::Type::getNonOpaquePointerElementType() const …/llvm-project/llvm/include/llvm/IR/Type.h:0:5
#14 0x0000000000507395 llvm::Type::getPointerElementType() const (…/install/bin/llvm-spirv+0x507395)
#15 0x000000000052ea9d SPIRV::isPointerToOpaqueStructType(llvm::Type*) (…/install/bin/llvm-spirv+0x52ea9d)
#16 0x00000000006e380d SPIRV::OCLTypeToSPIRVBase::adaptFunctionArguments(llvm::Function*) (…/install/bin/llvm-spirv+0x6e380d)
#17 0x00000000006e3293 SPIRV::OCLTypeToSPIRVBase::runOCLTypeToSPIRV(llvm::Module&) (…/install/bin/llvm-spirv+0x6e3293)
#18 0x00000000006e30d1 SPIRV::OCLTypeToSPIRVLegacy::runOnModule(llvm::Module&) (…/install/bin/llvm-spirv+0x6e30d1)
#19 0x0000000000e1c6e9 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) …/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1545:23
#20 0x0000000000e1c25d llvm::legacy::PassManagerImpl::run(llvm::Module&) …/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:16
#21 0x0000000000e20f61 llvm::legacy::PassManager::run(llvm::Module&) …/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1672:3
#22 0x0000000000581832 llvm::writeSpirv(llvm::Module*, SPIRV::TranslatorOpts const&, std::ostream&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (…/install/bin/llvm-spirv+0x581832)
#23 0x000000000042a69d convertLLVMToSPIRV(SPIRV::TranslatorOpts const&) llvm-spirv.cpp:0:0
#24 0x0000000000428212 main (…/install/bin/llvm-spirv+0x428212)
#25 0x00007f5467362fd0 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#26 0x00007f546736307d call_init ./csu/../csu/libc-start.c:128:20
#27 0x00007f546736307d __libc_start_main ./csu/../csu/libc-start.c:379:5
#28 0x0000000000424ea5 _start (…/install/bin/llvm-spirv+0x424ea5)
make[2]: *** [CMakeFiles/prepare-spirv64-mesa3d-.spv.dir/build.make:80: spirv64-mesa3d-.spv] Aborted
make[2]: *** Deleting file 'spirv64-mesa3d-.spv'
make[1]: *** [CMakeFiles/Makefile2:284: CMakeFiles/prepare-spirv64-mesa3d-.spv.dir/all] Error 2
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWsly2zgQ_Rr5ghILBMXtoINiOzWpciau2JM5skAQlBhzGwD0Ml8_DYA2lyiRHTs5TEmWJQoAX79eADS6mDbZw_oDuqMSsaZqi7Kot6gsUlYylIum0q1VoZCfZlHo-Zj6lK9InNI8yr3QYykhAfXDNCB5FJIIL_DZAm_6zwDbN7O_y_K2Wsq2ELcLb4MW52QB4zfBgrwvaqloWZorVnYZhys9Gr4-fIaP64eWOzu4y4tW-l7T523grXvQgmymLfZqy9WfTf2ppf90_LIpasXFeckrXiszhkQLEoN-IFtjbqTkQhVNjYDxn1112tSKFjXPrh8kSACaAXyRjVK8apU2k2oQiEDcYiKlqTQ5aoxA1FqJcMuChCinRckzxxri8uJ8c3WOZJdq01KUdlskeNsIpTF3SrVSa0Dew3tbqF2XOuCGwSbGkK1ovnKmtM2k7LiEC0TrDPUWRGrHERNU7lBK2Y0SlPFe_JWCBpR1VaulmCYMXfGlaLaCVoiKbac1kt93U1rUjzyMQ9HSfi8rer-85UKCHRfemeu4aNkg0xWslhWX1MuWjmxvQeeiBCtKByLuxpmPSPuQcTWvz11da3u3VGpPhJuMtgp9Or0wJpcobwS6uvzweflFWxocWDVZV-qwCA9KIaFzDM5jcB4Kzd8RmHvDEsZ6GOF7_PhyMUmDlI6iTD5Ie3EpwKnGftfaoBBDwyBB75JGKsFpZcLlFFyhdIiNTThz3aNDixQ-r7pWxwBc_VUX97qh2Na0lA64FPD9wIdP1x1Yu3PWUZCiGUWL8QdERqmDMbptigzmyxvyCjyieQ20yIxWnONgnzHBtxN2sp-SL-f1SIi1OqRd7GlzDYS8uZ1y6qO5Yd7WWSscTo2y6jmEOcc492PfJxgZhXvA-yhIYOGEYO3ul9u6sx3MkY0DXN7h-xWBW4DigOlPMXkckQglSat2EIRZclOUZVJUrV2fqFnbHICtW6Xn8HiYYzjrtTUMBvzgOfh6kQPFf4gMBtVuGZDDfcjj234IF7szuGhu3FUYoK00HjFI9hIuHPPrQWa81Stm20jjPEELyQ020X4b2SCeQocp_CGa6rXaQKnMus80WWU1u7DPz2CS4jlCkKV640gsjUTyrfZPcktL2DYcs84avcuGZpXcMmpxfRxr9AHY3Qec1GWib0yypoLt6wd4cai94q0GQDIFjBg3e94LYtSLuV764gFzMvfwys8x2O91u_Uz5uiBNAIP64PmuJpw9HHoxf73OB6iBj-etWMac1lRE3v5Uy6E0zgzO9wXS6GQPYPrxtrqSomOPRKZke7X-ZdxMiInnIIJp4B7EZ5wgu1Yi7tuTNs7KntzUb1Zv-9qppeezVNWMab52PtTVC2TCdVwTpXE3nOoiq6edk1YfjRJhdnVf4IjUJhwjOYcceZ-n-MF31L2MLCsH8m8GT8QP-EXT_hxlwXcoNK6qR-qppOoppBItSYBinsGl5eQoX2kNd3CbvoCss_cbs38taYYCXrc8P2VTo2I96QDwXMdiJ-NpnQ5MuoI7wNslk_kfzFp3zPpXDBwdqecCc4D9zDn38XXDUKd541sTKZLVeRGkPoNFO5EofiVDbQ9zDY6Qx5FPWSrtSypasSnVsn-XGbzaNhk7Zhpev3UnCTs_t517Y-UyoIlMBCODQvvlO2omAzWDQkchwp9vrHd3vlkBMyWhmkiQz8yY35ielmrjKcXme2IhAawwoO6cGxSFxdfPg4L0HOsE6NBYu8pbP6f5K1m8iICG73JDV6mir1zososAQ1ZnmFIEHVOAB6gQiUMAJOnRITJ7tscrM_y9t1kNms_ms2TWVoaZjgEA1KTjBZqLsheavSlQTe5j0s0KBlZKdwHOlFlnxZ7wb0wnuQXJJp5YMXh_GFRX-wDfe-TDyp6wxf-O7Lwz8xZXU8q_UbQePoROt8XpakMtIK3VPDlNydxJyuEFgZn5cwxcH22_u2hHYSgjc5yeXZA-hkvuamQ5IU9in-LRcIJhntQA32t4fQaREios3T0IhW1VUGDcyEagcgB6X_D8mAUgLFdnUNcyR3P0NcmlQ68joWDY-Hg9xcO_FUQemH6poUDg8nyX1Y4-AH-KwsHI-S3KBz0xv0VhQMDHbivKBz0CG9fOBgBv03hwJqRHAsHx8LBsXBwLBwcCwfHwsGxcHAsHHy_cGAzEPKbCwdWqve2hYMR6P-zcDB9vuRA6WA6-LXFgxna68oH9iGSF-q5r37w9PjVSbb2stiL6YkqVMnXp-bBi7sdr5H4pY_WnHSiXP_8EyO-7xL3ZLd2Gfa8zOVpzFICpwEP1p4UU5Z7q9SLGTspacpLuQazLgip-R0yEPrhFv_spFgTTAjEZwDf2MNOFGMWhS4JIpanPE8XK8xhFpSO5uE0Ynsi1oZS2m0ldJaFVHLoBEvBsYtzIw7waad2jVjDKe6u4Ozm3xMjfG3I_wfv96Sm">