<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62986>62986</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang fatal error: Cannot select: intrinsic %llvm.thread.pointer
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
zxcuiop
</td>
</tr>
</table>
<pre>
Whe compile below code with clang, clang emit fatal error:
```
typedef struct
{
int x, y, z, w;
} tcb_t;
extern void test_00 (void);
int test_01_a;
int test_01_tcb_0;
int test_01 ( void)
{
volatile int * y = 0;
int x = 0;
test_01_a;
y[0] = 1;
tcb_t* tcb = (tcb_t*)__builtin_thread_pointer ();
return (test_01_a + 5) ? test_01_tcb_0 : tcb->w;
}
```
The clang output, can be verified at https://gcc.godbolt.org/z/G9PcTo5hx:
```
<source>:14:3: warning: expression result unused [-Wunused-value]
test_01_a;
^~~~~~~~~
fatal error: error in backend: Cannot select: intrinsic %llvm.thread.pointer
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-13.0.1/bin/clang++ -gdwarf-4 -g -o /app/output.s -c --gcc-toolchain=/opt/compiler-explorer/gcc-11.2.0 -fcolor-diagnostics -fno-crash-diagnostics -O1 <source>
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module '<source>'.
4. Running pass 'X86 DAG->DAG Instruction Selection' on function '@_Z7test_01v'
#0 0x000055756fedf35f PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#1 0x000055756fedd220 llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x34dd220)
#2 0x000055756fe2e972 llvm::CrashRecoveryContext::HandleExit(int) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x342e972)
#3 0x000055756fed5dee llvm::sys::Process::Exit(int, bool) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x34d5dee)
#4 0x000055756dc8479e LLVMErrorHandler(void*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) cc1_main.cpp:0:0
#5 0x000055756fe35df9 llvm::report_fatal_error(llvm::Twine const&, bool) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x3435df9)
#6 0x000055756fe35f7e (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x3435f7e)
#7 0x0000557570d23832 llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x4323832)
#8 0x0000557570d2688a llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x432688a)
#9 0x000055756ebf2237 (anonymous namespace)::X86DAGToDAGISel::Select(llvm::SDNode*) X86ISelDAGToDAG.cpp:0:0
#10 0x0000557570d223d4 llvm::SelectionDAGISel::DoInstructionSelection() (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x43223d4)
#11 0x0000557570d29a76 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x4329a76)
#12 0x0000557570d2cfb4 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x432cfb4)
#13 0x0000557570d2f242 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.887) SelectionDAGISel.cpp:0:0
#14 0x000055756ebfa2a8 (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) X86ISelDAGToDAG.cpp:0:0
#15 0x000055756f272638 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x2872638)
#16 0x000055756f6a6a79 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x2ca6a79)
#17 0x000055756f6a6d11 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x2ca6d11)
#18 0x000055756f6a7f87 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x2ca7f87)
#19 0x00005575701d2552 (anonymous namespace)::EmitAssemblyHelper::EmitAssemblyWithNewPassManager(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) BackendUtil.cpp:0:0
#20 0x00005575701d6a55 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> >) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x37d6a55)
#21 0x0000557570e33d7d clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x4433d7d)
#22 0x0000557571c8cd19 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x528cd19)
#23 0x0000557570e33e22 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x4433e22)
#24 0x00005575707e0ff1 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x3de0ff1)
#25 0x000055757077f2b2 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x3d7f2b2)
#26 0x00005575708ad733 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x3ead733)
#27 0x000055756dc8611c cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x128611c)
#28 0x000055756dc822fd ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#29 0x000055757062a605 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#30 0x000055756fe2e803 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x342e803)
#31 0x000055757062c6be clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x3c2c6be)
#32 0x00005575706020ea clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x3c020ea)
#33 0x0000557570602c3f clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x3c02c3f)
#34 0x000055757060c035 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x3c0c035)
#35 0x000055756db9b56e main (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x119b56e)
#36 0x00007f0ba89c6083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#37 0x000055756dc81e7a _start (/opt/compiler-explorer/clang-13.0.1/bin/clang+++0x1281e7a)
clang-13: error: clang frontend command failed with exit code 70 (use -v to see invocation)
Compiler returned: 70
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWl1z4yjW_jXKDWWXBPryRS4cO8nMVPd0qpP5eN8bF0JHNtsyaBFKnLnY374FSLFQnE7PjGd2q7Zr4pEBwXOe83A4YGjb8q0AuAySqyBZX9BO76S6_O3AOi6bi0KWz5e_7AAxuW94DaiAWj4hJktAT1zvEKup2AZ45R4Q7LlGFdW0RqCUVAFZBuE6CJdBGvb_2a_6uYESKtRq1THdN8mu3ANCXGh0ML0-m4_fzMdTQK6GdmukWbHRxxL7CQcNSqBHyUukodWbMEQBzs33AC8mjc0IrlG0oS9141IzRHiqxnSKhl6nyB9lTbUhyrwQ4CV6RgFZo2NHvXGvSl-D6Wueg-QqDJK1fSOa1vZM4KV5sE0CnA9lAV5sNkXHa83FRu8U0HLTSC40KNNszAoa-lOgOyVsLwMiFOArlAR4gQJy4_ODAmJHngXk2vPQSa-7zwcjJ6sW2emm01Y9VKAC0CMoXnEoEdVop3XTGv3gmwDfbBmbb2VZyFrPpdoG-Oa3AN_cLu7Yg0x2h7d0FpBVKzvFICDXAVlGcUCWxGB-okpwsTWPcGgUtC2XAilou1qjTnQtlChIrma_uOfZI607CJL12-5CQXL9r_6fK_HngXtAXKCCsi8gSlO2okJIjVqogWlTwIVWXLScoQAndf24nzu_zXu_uZ7vPlwv769R2xVmvlFUdFukoJFKIy0nzBXdtp3bnhxviIoSccHqrgSkjS8UbXcWlFaUgXFHo6BRkkFraOgJxCv7Jm1byTjVUCLVCdQyxRs9d7DuNWVfUNntmxd_hPMgXNwpuVV0j6jadnsQ2oBDAb6RjQ7wTR9a1AwOTS0VKFNm9DGLyDycR8YGLobCAF8ZOc625RNV1SxGsy2aSdMbbRrTp9XUvEUzhmazLWMzLWXNdpSLgKy_OqhpHEVzPA_RrGKylmpWcroVstWctWhWCTmzZPnFnyLkyczaHRm7A7ICWQXkGjVUtaCMrEGUSFao4jW4lti0XJmAugUBimouhashpuZzJ4xQUUPbFgU4u-kEM03QnSn4SAXdGvAZkgLtZdnVYFp5gHDW-yc-1eGveYrWy1szg9fLW_S9cDHZDHFvZWnwuP6rYWwzQhxu_j_rp8GjKehnASYhCg9hGIZJkiVpBWVFkgrdKS60FciDUdk93wpaf0dFWRv4fZQ2EQu5qnbOGiOj0P699B1N-i4xDpFRt1EcWbbPrXtY1UBF13wSrrcA552wK12JamlUtHAR8E9oMMBX4YHEFsLLUmAwYh8jhkWGRxhXRkKfgclHUM8rKTQctKtxdFwfuA5wzoU-I0oLwkNJJkwmJcApJu9cIHBfxthWqJCyPieTBoKHMR5jLFkeZwtAHz78_PHaxNIT6lmhVpcO6mbDDococl8K2nK2aU1s3QZkxXZUeY1NwUYryk1sctVm4oxa0LqWjGoTyod6ZP6YFK0OcDrmg7Fos6dcnJZw4hNPkrJajIh3cXxjF4-NWzxwfqx-eOICTo56Ji9YPJ4X0ingKoPzjVZlvs-z0WhZWGKSk_HseYlJ6-Xt9_dQ93PKrqP_B9pVe4zdr3-UJfTB5SywY2JRebDzCew0z-m7sF2pCf4rud-bOHsa9wq9RC-jvcH9fs05A0ZMrAGehYuxDKCosPFVgHMqpHjey65Fgu6hbWwOsXA2_Jqn6-Xtgzxh9ds--jVPTePhxdezyKwD4YRvTMr4Xb7XcrS8jVa3_JzEGSTHrQEmUTSBuqBZ-r6iZQm3IJaivN5zvV7enhmlAeGhxBOUrCreJ9SVLuv6ygTYq1qyL63n2Jd05RixzmeDgejZQCY2VDh-P3aoTnwSHynbcQEDXM-GV3WDEfOGKj3P88ymLZPOT8s2nkwiimn-hybRH0T9TXPLX6FwhlOSozd7NonoCNNJMK-5-_MCwLkF5gnAX6pSmtJsvLbe3BmwQ9L8n8DMLCQPczbFXEbRN2D-aJN93-V90XnxllHk4c0neLMqz0Z4a9hS9tznjkfk3--bo3L_etQGlId64YWGqMRJgt-beCbyLtsW9kX9_B3UzcD_uPwXrnc_wtPYRzh3gGzbK7fZX_ZSGmWUneD_7GDTaJNSjvI_-rRpnhTXYPJVoHvvpRIq2tV6U0INGt550aWohtYexU-an45LOJzQk9IkQSMzjMl9J5_6U5uxlevjhvhabLmAPjcdNfkOaAnqHqhiu0-NYaP10thR037te6fVA1Vb0O80-kDF9lST0aJgNwWfofKLB1UuJx3-d_jzPNl3Zt08nibYz1WAkDIrT5i_kqLt9sN8cBuxB0VFW9vzi58Enwhkef8wbHXPmQPEFqBngZfHRCxnZbQYW3BHVQvL-wcf3z3sqbefOvO-KsEWiIeUTLkGjE9Mg15q_f4bWKdhef68NbbDe_hiD18GYVVFY3w3ynj0ZS6MAZ4TGintyB60xIeWVbiYUOcGM-k-FQxOs_e2LWfUKCktOg9-6sHPaZkR4kVbB_RoxaNk9DXoV1aecY9LwKLyYGeT45g0itjLYYe3pi-Vos8mprrDkuOG1Z2qvNrEjo7_zoI-whachz6foMe4KtHA9Cp6sNN9vCfd07r-GZiWffJywhQrk1LxR1Cn11U_7UgxTcPE_UR1HGg4Vt0oS5itHX6eue7Pp2hdF5R92VTC4DhKwI3dy2EVreR-T0U5nYsnHXMsdAskrb3C47o4LDt_--FaLw4XiK04HPn2nQBnNd0XJQ1wdmQL58Px7g-yOOmS6fE0hjwk33Q8-7kT97SC-tlj9OveO-cJbh5605FEE22xtAD0P66NM7HNLJke2_75SBriEOibbNuB6atlcXCBF8UnL5oGb2WzX2m67IPRWVmwRnoskCkLjFS_l4UfZNG-TcEPsvjAW_1Wtv4qKL8IpaHcaKT_beJbWRvU9FeQx0jlkRdPyGMhSd4Cuh49e-nAiTzgLdL_XvLORZthxaPNO44qi0WRpIBMynGmXCGyPXpDDglaVoUFzRcsDXOCNpuaFyaYUaU3o_FrXgT45pCnmzSe1Vx0h9lWdK6CzVs5T92pRBzmfgCf5lMRZBS5_s-WBpk-XwYdXnq5jmAe3F2Mqk-AEeudXFFeQ-lu-cCBa3fpJ7N3aroW0OwRaYlaAMRH6Wk_0JCZ9tdJwF52yMKTdzQuyktSLsiCXsBllOYJSTMckYvdZVFEWbxIGI5zGodpGWUsj8KqIlAljMTsgl_iEJMwwYuImH_zOF7EC0aKcpEVSYpZEIewp7x-uf9wwdu2g8sUL_L0oqYF1O1w80ldmkazotu2QRzWvNXHaxMXmusaLnum_Gsdv_sKx0Wn6svJ7Raud10xZ3JvVGPmq_vfrFHyH_a3khsLvA3wjcX-7wAAAP__Lmo_yw">