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

    <tr>
        <th>Summary</th>
        <td>
            Crash on systemz with named address space
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    Following testcase:

```
#define AS __attribute__((address_space(3)))

int AS m;

int *foo(void)
{
  return (int *)&m;
}
```

crashes when compiled with ```clang -O2 -S``` with the following backtrace:

```
Stack dump:
0. Program arguments: /usr/bin/clang --target=systemz-linux -O2 -S -fcolor-diagnostics -o as.s as.c
1.      <eof> parser at end of file
2. Code generation
3.      Running pass 'Function Pass Manager' on module 'as.c'.
4.      Running pass 'SystemZ DAG->DAG Pattern Instruction Selection' on function '@foo'
 #0 0x00007fe111017b7a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib64/libLLVM.so.19.1+0x217b7a)
 #1 0x00007fe111014b24 llvm::sys::RunSignalHandlers() (/lib64/libLLVM.so.19.1+0x214b24)
 #2 0x00007fe110f33472 (/lib64/libLLVM.so.19.1+0x133472)
 #3 0x00007fe110f3341f llvm::CrashRecoveryContext::HandleExit(int) (/lib64/libLLVM.so.19.1+0x13341f)
 #4 0x00007fe11101093f (/lib64/libLLVM.so.19.1+0x21093f)
 #5 0x000055ea3ea3feae (/usr/bin/clang+0xbeae)
 #6 0x00007fe110f47f80 llvm::report_fatal_error(llvm::Twine const&, bool) (/lib64/libLLVM.so.19.1+0x147f80)
 #7 0x00007fe111a98edf llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) (/lib64/libLLVM.so.19.1+0xc98edf)
 #8 0x00007fe111a97eb6 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) (/lib64/libLLVM.so.19.1+0xc97eb6)
 #9 0x00007fe11473a1b1 (/lib64/libLLVM.so.19.1+0x393a1b1)
#10 0x00007fe111a8d7dc llvm::SelectionDAGISel::DoInstructionSelection() (/lib64/libLLVM.so.19.1+0xc8d7dc)
#11 0x00007fe111a8ca85 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/lib64/libLLVM.so.19.1+0xc8ca85)
#12 0x00007fe111a8b81f llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/lib64/libLLVM.so.19.1+0xc8b81f)
#13 0x00007fe111a88b0f llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/lib64/libLLVM.so.19.1+0xc88b0f)
#14 0x00007fe114738c59 (/lib64/libLLVM.so.19.1+0x3938c59)
#15 0x00007fe111a86b5e llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/lib64/libLLVM.so.19.1+0xc86b5e)
#16 0x00007fe1114e5f48 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/lib64/libLLVM.so.19.1+0x6e5f48)
#17 0x00007fe1111bf590 llvm::FPPassManager::runOnFunction(llvm::Function&) (/lib64/libLLVM.so.19.1+0x3bf590)
#18 0x00007fe1111c78c3 llvm::FPPassManager::runOnModule(llvm::Module&) (/lib64/libLLVM.so.19.1+0x3c78c3)
#19 0x00007fe1111bfe22 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/lib64/libLLVM.so.19.1+0x3bfe22)
#20 0x00007fe11a28dbf0 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/lib64/libclang-cpp.so.19.1+0x188dbf0)
#21 0x00007fe11a6ff0d9 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/lib64/libclang-cpp.so.19.1+0x1cff0d9)
#22 0x00007fe118bf5579 clang::ParseAST(clang::Sema&, bool, bool) (/lib64/libclang-cpp.so.19.1+0x1f5579)
#23 0x00007fe11b42a06b clang::FrontendAction::Execute() (/lib64/libclang-cpp.so.19.1+0x2a2a06b)
#24 0x00007fe11b386514 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/lib64/libclang-cpp.so.19.1+0x2986514)
#25 0x00007fe11b4b57bd clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/lib64/libclang-cpp.so.19.1+0x2ab57bd)
#26 0x000055ea3ea3f516 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang+0xb516)
#27 0x000055ea3ea3b7b7 (/usr/bin/clang+0x77b7)
#28 0x00007fe11af580fd (/lib64/libclang-cpp.so.19.1+0x25580fd)
#29 0x00007fe110f33400 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/lib64/libLLVM.so.19.1+0x133400)
#30 0x00007fe11af57975 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/lib64/libclang-cpp.so.19.1+0x2557975)
#31 0x00007fe11af127cd clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/lib64/libclang-cpp.so.19.1+0x25127cd)
#32 0x00007fe11af12b37 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/lib64/libclang-cpp.so.19.1+0x2512b37)
#33 0x00007fe11af35c1b clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/lib64/libclang-cpp.so.19.1+0x2535c1b)
#34 0x000055ea3ea3ab7c clang_main(int, char**, llvm::ToolContext const&) (/usr/bin/clang+0x6b7c)
#35 0x000055ea3ea4b8a8 main (/usr/bin/clang+0x178a8)
#36 0x00007fe11080f248 __libc_start_call_main (/lib64/libc.so.6+0x3248)
#37 0x00007fe11080f30b __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x330b)
#38 0x000055ea3ea389f5 _start (/usr/bin/clang+0x49f5)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 19.1.5 (Fedora 19.1.5-1.fc41)
Target: systemz-unknown-linux
Thread model: posix
InstalledDir: /usr/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: /tmp/as-b5786d.c
clang: note: diagnostic msg: /tmp/as-b5786d.sh
clang: note: diagnostic msg: 

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

If the testcase is changed to:

```
#define AS __attribute__((address_space(3)))

int AS m;

int *foo(void)
{
  return (int *)(unsigned long)&m;
}
```

then the compilation succeeds without problems.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMWVtv4ziy_jXKC2GDoiRLfsiD4sTpDNKTIM7MwTkvBkWVbE4k0oekcplfvyAlW5fEibO9u9iG0XbIYtVXxbqRpFrzjQA496ILL7o8o7XZSnVeZ_zvv-jTWSbzt_OlLEv5wsUGGdCGUQ1ekHrYfWa4_eDUI0EOBReA0hVar6kxime1gfXaI4lHEprnCrRe6x1l4JEk8Mi8_TheXBi7svKCi27AI2khpUeSZ8nzljS28wgpMLUSyCNJS-iYzfbr48sxPpwyRfUWNHrZgkBMVjteQo5euNmiAyUrqdigyR1Bk9VhsKExW0DFwRgZZU9GWV0-ssbKUPaE8rraNdN4iu6V3ChaIao2dQXCaC9IkUeWtVYeWWZceGTZSp8YqjZgvOBSv2kD1d-Tkov6tYWFJgWTpVSTnNONkNpwptFEIqqn2v7HPJz6U-T-ecECZOEFV2hHlQaFqEEgciQLVPASPJySKVrIHNAGBChquBQeToN2-UMthFV2R7VGHomXtWCWBN3bgZ9U0A0oj8RIClTJvC7BUjkMJJ56OA2PMFo5vf4PXabXEy-4ukyv0T01BpRAN0IbVTdiVlCC-9XKKPbyPRJ7IXa-EVt38EiAEX7FGOO4AN_3sR9nMUVl-VzZHQhS_aabH_eKC-P251E1rtgRKfqyltoooJVHZh5ZIC6MR-bI-fCy5NksbL5vb__8OdVy6s-nvkcu8CtxAhsftXD8EZwwI-FHcB5qseIbQcsfVOQlKO1EnSbR8uwkkr5EXARBGJMT2PiOsGMTvGPjFz3gCxtED8DkM6i3hRQGXk0z0yhw9cpNE5SnaeE7AZ34cGQ3PA-Kk4xhCTs2UcsmioAGQIMCKLRs3gWcY5ABhW75bGiEMC4S3DOCgp1UZl1QQ8s1KCXVwI0eX2weZFJo07pRJmV5oj2crA5JPLAHnSeQ97fjECGX6fXNCsp2k6gQ0vwvmGZ6AG51-bvMoUmYJ-BhTmKHJxnhiSGbfYmnGbV5ZiGryobzx4AWqBauIuWIbanam3A4c7JrMQeugz7vQw_jgPqZfwKbYO4o2_JDAn-YaWiSxzn70gSXspfYenntxGBnTkqHwR9hYDSJvnYLmcM1iFTkVxU3l-n1N8RbAZ14MhKfJf7XXtmMpmV5QTVnF6VkT3rgCYfy0oXOaeCs-A5cMAKXZPhrcKoWd-InZVsuYI9jAO7d3MnorPwOXTjywoRFp7AJ5o6y4xONtJxlEXyi5S1sKHv7t-tqUXQYB2nUDyEqwgQdFWObih7AD5F9G9LMCe0gDfOpnxXRvJ_Zl_cWxb6z-VeDCZy4DswwmfosTlhwApifrtUa7lg7dCoQJ6oDMh9bBQjpASl7ztODdFPtuuj5JThO4AEOGWRYSpI8KzBqarVjb9PXBWVPIPK72uxqW-F605ddY3wlNlxAW4V7JD-A5qBWQBXb3u3sJupBwe6RtlnzC6pH17J_QXRLxeYjkl7YGsXF5gGK4fDenumIYWuEtHXD_pIbYVSt-TM8QLEQ5t4oL1h0089FG2tLXkLTjnvBlWWhTd7M1IL_fw3r3WilbZJ3L4obWO9b5d6iHApal2adQwkGvlgYXLUy36u0kELXlT1dfNyouBUTttsNu6fE-UrnSYM6SWdFgfP5Z9J6neyjokKX7kj0h-AjF0tXj_vm94iTHwHIHIQO4KCSJlkRRfEA4L09t6Wrx6H4FVR00Fp-0mIeAeIkdTgGRTMLCcWzrI9jqay6B1drwvAVWG3gWBfxsWBCHe9O8qAgZkEyi_xwGH_upK5s_0RFc-A-yN57fnIc6rf2h8yd_A5dNLRLFsVZPkhFDY4O5LNk9D2md0p8y60JdXI7VLPx8SbyZ4gxf11RPszEqVL0zeaTYDFsqdvAG7fZzU1LD9yR41Lkzzo48QhOFmfxp8vjOIu75YMySIsowUV-smkiR94xm787v2J80vnVnsRpAeXbwH77K4e1cja05mmgzZ0FTz3i4i4nDW8qaBHF8zjqu1Su-PM-FS0Wvj0yUZGPQ-7DLT6kYemqDC0HCbgrLofEe1iwXrPXV99v_shsg26TNLeYnOMMiO3A2ijKjd5Pj9jRsrRxIFVv3pKkXapyPuZc7xt7bW3VWXKY3QufxCw_akkXgfRd9tqbdxCuo4WW4FhN_4Q0HZ3-v6msU6dTloyVzYL4u8r-JjN9XNPfZHbLtTnWmlS0LP8EZmTb-HXetqPcbrQ7mZ9unNYlfs1EWdAlkuHdFS2CiPnZMTiXvd-DJP5B9j5m2v-giU6vFZFTuzNKOErONItZA2BfLfagXJinbZD2rrOkLNtM-cHJ_OMEP8vi7rZifBsXZglNkBX-KQ8_Tmh3chvdySW4IGGC1mtriLU2VJk1o2W57rHt28raaNYcNkjvPDi8X7NcA5wNuTojhfj69uZisSZTMo0-Zx_gnvGTkfGTeRGhhvGnuofzos1ze1dBzT1jkDZ7h4q2y0GsdZqCdu8Z8MrtXuWAYmzl1BrQ5BkZiTQA4r0m5SACPYPSXApkPanRcQm5VLQdmPjTgoXtNdhj-0CRov0LRS2ehHwRzUuFpdgqoDmqZO5uWNBOam7HXQNUlpBfcvXuBaSnrZD29JCi7pEDVdrNOMv-wsc91tzfXqWrK5Q-PqaLH-jxxxVa3t3e3v3Pze_XaHlze7VCj3du-OKPa_RwdX_38Ni85Nwr2CnJQGvIkZa1ck8I2saD3QSqtWScGsiRqgXSTPGdORAoQK4sQo6oafidojBZmmrnkSXVkyyKk1nu3nj-uZV6e7qVf93Qwwe4m8I9ou3fERHXNueIDeTIyP_iV8XkcPdcShufXz00mi0IpynragXSNWMAuXYBKmuDdkpmJVR6epafB_k8mNMzOPfjIIz8OZnhs-35nIVxHkU4ZDmhs8KP5lGMZ0Ec5BnD86w44-cEk9AnfuLjKCR4Ckk2IyzyZ2GIMcXghRgqysupzeZTqTZnXOsazn2CQ4zPSppBqfevv-rcUk2yeqO9EJdcG92tM9yUcO66Z2S1acK-yTaCVtajm71Abi_OalWeb43ZuVsGsvTIcsPNts6mTFY2Z9rq0nxNdkr-5V4plg6c9siyxfd8Tv4RAAD__6IR_F0">