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

    <tr>
        <th>Summary</th>
        <td>
            [15 branch] [libclc] Building libclc fails: "Attempting to get element type of opaque pointer"
        </td>
    </tr>

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

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

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

<pre>
    Building libclc inside the LLVM 15 tree (current release branch) with the spirv-llvm tools from the llvm_release_150 branch fails:

```
[4/65] Generating spirv64-mesa3d-.spv
FAILED: spirv64-mesa3d-.spv /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/build-libclc/spirv64-mesa3d-.spv 
cd /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/build-libclc && /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/build/bin/llvm-spirv --spirv-max-version=1.1 -o spirv64-mesa3d-.spv builtins.link.spirv64-mesa3d-.bc
llvm-spirv: /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/Type.h:385: 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: /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/build/bin/llvm-spirv --spirv-max-version=1.1 -o spirv64-mesa3d-.spv builtins.link.spirv64-mesa3d-.bc
 #0 0x00007f9f6a7d2c91 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/lib/Support/Unix/Signals.inc:569:13
 #1 0x00007f9f6a7d302b PrintStackTraceSignalHandler(void*) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/lib/Support/Unix/Signals.inc:0:3
 #2 0x00007f9f6a7d18da llvm::sys::RunSignalHandlers() /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/lib/Support/Signals.cpp:104:18
 #3 0x00007f9f6a7d2586 SignalHandler(int) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/lib/Support/Unix/Signals.inc:0:3
 #4 0x00007f9f662372a0 (/lib64/libc.so.6+0x382a0)
 #5 0x00007f9f66286ffc (/lib64/libc.so.6+0x87ffc)
 #6 0x00007f9f662371f2 raise (/lib64/libc.so.6+0x381f2)
 #7 0x00007f9f66221472 abort (/lib64/libc.so.6+0x22472)
 #8 0x00007f9f66221395 (/lib64/libc.so.6+0x22395)
 #9 0x00007f9f6622ff12 (/lib64/libc.so.6+0x30f12)
#10 0x0000000000408855 SPIRV::typeMangle(SPIRV::BuiltinFuncMangleInfo*, llvm::ArrayRef<llvm::Value*>) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/SPIRVUtil.cpp:0:0
#11 0x00000000004083b9 data /usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/12.1.1/../../../../include/c++/12.1.1/bits/stl_vector.h:1261:42
#12 0x00000000004083b9 ArrayRef<std::allocator<llvm::Value *> > /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/ADT/ArrayRef.h:96:18
#13 0x00000000004083b9 SPIRV::mutateCallInst(llvm::Module*, llvm::CallInst*, std::function<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> (llvm::CallInst*, std::vector<llvm::Value*, std::allocator<llvm::Value*>>&)>, SPIRV::BuiltinFuncMangleInfo*, llvm::AttributeList*, bool) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/SPIRVUtil.cpp:792:55
#14 0x0000000000409216 ~_Function_base /usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/12.1.1/../../../../include/c++/12.1.1/bits/std_function.h:243:11
#15 0x0000000000409216 SPIRV::mutateCallInstSPIRV(llvm::Module*, llvm::CallInst*, std::function<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> (llvm::CallInst*, std::vector<llvm::Value*, std::allocator<llvm::Value*>>&)>, llvm::AttributeList*) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/SPIRVUtil.cpp:859:3
#16 0x00000000004a69c3 ~_Function_base /usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/12.1.1/../../../../include/c++/12.1.1/bits/std_function.h:243:11
#17 0x00000000004a69c3 SPIRV::OCLToSPIRVBase::transBuiltin(llvm::CallInst*, OCLUtil::OCLBuiltinTransInfo&) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/OCLToSPIRV.cpp:961:5
#18 0x000000000049ced6 ~_Function_base /usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/12.1.1/../../../../include/c++/12.1.1/bits/std_function.h:243:11
#19 0x000000000049ced6 ~OCLBuiltinTransInfo /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/OCLUtil.h:152:8
#20 0x000000000049ced6 SPIRV::OCLToSPIRVBase::visitCallBuiltinSimple(llvm::CallInst*, llvm::StringRef, llvm::StringRef) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/OCLToSPIRV.cpp:1161:1
#21 0x0000000000495c43 SPIRV::OCLToSPIRVBase::visitCallInst(llvm::CallInst&) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/OCLToSPIRV.cpp:0:0
#22 0x000000000047c509 delegateCallInst /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/InstVisitor.h:0:0
#23 0x000000000047c509 visitCall /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/Instruction.def:209:1
#24 0x000000000047c509 visit /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/Instruction.def:209:1
#25 0x000000000047c509 visit<llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, false> > /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/InstVisitor.h:89:37
#26 0x000000000047c509 visit /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/InstVisitor.h:104:5
#27 0x000000000047c509 visit<llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::BasicBlock, false, false, void>, false, false> > /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/InstVisitor.h:89:37
#28 0x000000000047c509 visit /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/InstVisitor.h:100:5
#29 0x000000000047c509 visit<llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, false, false, void>, false, false> > /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/InstVisitor.h:89:37
#30 0x000000000047c509 visit /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/InstVisitor.h:96:5
#31 0x000000000047c509 runOCLToSPIRV /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/OCLToSPIRV.cpp:177:3
#32 0x000000000047c509 run /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/OCLToSPIRV.cpp:113:10
#33 0x000000000047c509 llvm::detail::PassModel<llvm::Module, SPIRV::OCLToSPIRVPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/PassManagerInternal.h:88:17
#34 0x00007f9f6aa75160 isSmall /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/ADT/SmallPtrSet.h:195:33
#35 0x00007f9f6aa75160 MoveFrom /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/lib/Support/SmallPtrSet.cpp:183:8
#36 0x00007f9f6aa75160 operator= /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/ADT/SmallPtrSet.h:489:13
#37 0x00007f9f6aa75160 operator= /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/PassManager.h:152:7
#38 0x00007f9f6aa75160 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/PassManager.h:522:16
#39 0x000000000047eba8 isSmall /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/ADT/SmallPtrSet.h:195:33
#40 0x000000000047eba8 ~SmallPtrSetImplBase /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/ADT/SmallPtrSet.h:83:10
#41 0x000000000047eba8 ~PreservedAnalyses /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/include/llvm/IR/PassManager.h:152:7
#42 0x000000000047eba8 (anonymous namespace)::runSpirvWriterPasses(llvm::Module*, std::ostream*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, SPIRV::TranslatorOpts const&) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/SPIRVWriter.cpp:5281:3
#43 0x0000000000336a26 ~basic_ofstream /usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/12.1.1/../../../../include/c++/12.1.1/fstream:868:7
#44 0x0000000000336a26 ~basic_ofstream /usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/12.1.1/../../../../include/c++/12.1.1/fstream:868:7
#45 0x0000000000336a26 convertLLVMToSPIRV(SPIRV::TranslatorOpts const&) /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/projects/SPIRV-LLVM-Translator/tools/llvm-spirv/llvm-spirv.cpp:335:3
#46 0x0000000000334ba1 main /home/bero/abf/llvm/BUILD/llvm-project-release-15.x/llvm/projects/SPIRV-LLVM-Translator/tools/llvm-spirv/llvm-spirv.cpp:0:12
#47 0x00007f9f6622218a (/lib64/libc.so.6+0x2318a)
#48 0x00007f9f66222245 __libc_start_main (/lib64/libc.so.6+0x23245)
#49 0x0000000000327401 _start (/home/bero/abf/llvm/BUILD/llvm-project-release-15.x/build/bin/llvm-spirv+0x327401)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWltz4yoS_jXOC2WXQPcHP9i57KYqOZMaZ2YfXUhCtnZ08QLyJP9-G5CtS5Rkz5xcPHU25Ui2gOaj-2u6QURV8jhf1lmeZOUG5VkU5zHKSpElDMktQzc3328RdpHkjKEJCeKac1ZKxFnOqGAo4rSMtxMSop-Z3OomYpfx_TTP9wWSVZULlPKq0CXq2bppucau1bRGKc1yMbEXE-tiYh2untV8zE936UzIledO3Av0D1YyTqVCrDvznGnBBLWT6Uzs9qbB1eL65vIChI5VgZFcbauCwS1ivIIbjVK4KoBwW367vrlofk53vPo3i-W0wT3F7uxBtVM6mxqFwc_RTjSQOHnj3kCcB5-3kqruWXmoqceBpuY-LejDdM-4yKpyYl_gGUbTalSfShLYQ8zyrPwxG9aIYqOKtgdll7-Ov6malXFeJ6x9cP0VLvePOzbbQkd24KrudBlwzF6oEuh90X9ivm2Y_KMqv-zof2p2V2WlZPwyZwVQXtchgaJ6XJVCKpkLIRiXoB0ERP2jLs6rUtKsZMn9o2jNRBZSsmKn-SorBF0gZmQiqaBUKap0h2hneoQmE-Jrt2DJzOju7uZysbpEoo6KTCIKGt-AE-4qLpXMrZQ77UHkCj4bcMU6msVV0eqkq0elMyFqJuALomWCGg1qJ405FVsU0fiH5DRmTfcrCQ9QUhe7o59aM6T_7ni14bRAlG9qNSjxNsb9aHICZNtC1oMFf34aph71ExKHuEMc8SjMlzsOdtIquVc6Alq0lTj9ua4EzJe00Aw4B-1KxZo34ztMA3Bd1Ttlffj2rcxU6SrblDQXMzAmwHC9EK7YbgeHB4OzLRKhwUiMjH8CJ3JFw2BfZWCDxcfDt5TjttjJADsOEjpmmK912RuCaDz23cAfUMc75RjYctQ1aIHbQ0a5gYeGWv4Uggw07HSBesT2CbWQ1p4S5znmHs9ENQNSL60HO4AaALsV4fZFBF6axi-KCHyo0RPhDVHglCBOM8FewQL1eoL8viCCHZ8gGqnp8iVBhEC9nqBgKMgO3VdEQI2eiHAgIk0xeXk4FtQ4ilCue5iYzJ9jBYHrotXd9dfvhvcqjtzScpOruajzfGmmvqu6jE3xdZlW2qHPO-6z4Jw-fmXpxD5vH36nec1UVfvyTcnZlKrYo4FOVYo5hdmnFDmVFW_5q4fR3L_JLG-czNL_R9XgoWrsKEQJlVRBrgU_hpDZrKPwTayytofAW0MoqHasLMAbebankGSV9cN0U9ZQjskM4sqh7eDSph0gaqk_bYMo0yMUMl_vYbQV16kIJh6Gm0Na-GQMfscgQibGHjTPq1gr6ImVkDET0v_vllUtLu7VtYGmxxN6nelOjcYeG02Hj0UtqWTnMJZrlUJ14-ZtldQ5e8LNtq4uOKojBUpLHfpbFa3X8cMDxuZHREUWryEQQ9oFleIt5T0B6sEaUhxlqKZYMb1To6vxQ7nWcPA6PGP0cYd6ro9x31OgPDUZGHR_3rklqCCqJbvJjjAjWJedllP7IVFJi9tSyRlQKSQYkmn_cn3VWH4dUR0WTsDJk_WBjtotiGMrv8DtYNyxwTzrF42S_u8cf9Y5XmL9KbE9cMM2-1L88Pr8oF4Y278t2f2xwXTI_uX85r7Sv5cwqCaBUcprJrSXOARtlR6PgpomWvdm-vM-19Tt4Bpbhzrkdya2oK-eMGbJ7zuxhc8MZsQ0n2sU7X06B3NVpGlzFmKNDeEVuu4zkUlFzWaQq6zY5ewl4rYFKz3rquzuuccnxV-MNYFbm5NBxh26sfOqfx8V9iTvax-emuf2FxpkkKn7sWvBQgP63nRC93vvaqo-vitdNiuKAUZ7DONR9x8BjtdmukjU6mVBrLDPHedZgCcAzn0WXC8ByXLIKdaZVO8gBrmJKUqYpIcYVVYJW1c71a3oVe3gURNBSnPwle4Xvfdm8ppB4bsv9UapFuicxW_V5X2qLbvQzL5bG2OJ_5GWXKpkegmp6o_f1JDBCRnS6hsy_EhDHhKw39OMtnUyZtT7Qq0VbTyGjNdlG3JPKe5j3--tzuzRyA_wTwo01ql5mwvYo7lAS_auR9xRIW7BK_KeOxw2Hc7HkzvVqJ_C3nEmGN-zZFHS_FGwQbF5molbWtIN42N9mSW9eY9Wl6NbIN6vCH3j3HLcC7QWDYxr9RoXkBlHDTSpWsv03rVQ6rvYs1AmVsX75mhmA1f3cif5ikkz5Ybq9bjdobs7Bu-22rMrdZDjzfA9eZXWAdZwOrB7S7X-66EDMlj_NrP-xYcrzwm6b1kVRP_zIA5J2FnudsgXjAHs-HDb_pnJ4G_p0FqXLlG6xF6rzGF6wiIanI4nO8OMQMOb-JedltfFLl82-00fijYYxCtnmCQcwD6JKp_tQs4wHzBISUDLqnwsqlqgkhZM7PTRkPDI_pU6efIvrrJU1YUKj89t8R-3wI8nSfqPP2Qzv3HNTvBvE5IvOymac1CfvW-j70atTdxwSYB7GZzTz4UgkFCitymN6qrUaPlT91wbDMozvKDPN-e3Ru-OoQfq7BmXyrZNOtk_uHAiTNMHWA_SzMnF7o-Gb5Ay9enmDYbsRBSjgmYfu2L438CrBTduDyQ4w5MzBAf05QMvNtTonlZxhmdmCAESrNeqGUxTlMt1o4uXhEKbntB-qLWJ71gYGXGNpHc6cGiO5Oj-WkCH08lnbI49NwxCy3XCs2RuJ6Ed0jOZyZzNJ-4Su4cj0i6kfu6yOTAMP4aHrg-HoH_xwOhZzfP5rx8Ddb0w8M628zS1PZcFTpymcRpYOI4YTXzmOKkbunZIznIasVyooUGnJfuJtAh1YtW9OMvmxCLECiwfew4hwcwNE-bDBGaFlh-ncTBxLAa2z2cKx6zimzM-15CieiOgUO3ViLYQomS2KZnWpJJPa7mt-FxZWE9bZ7rzuQb_X__jG8U">