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

    <tr>
        <th>Summary</th>
        <td>
            Clang-18 crash: Cannot emit physreg copy instruction.
        </td>
    </tr>

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

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

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

<pre>
    Clang-18 with -fsanitize=undefined -c crashes on the test case.

Compiler explorer: https://godbolt.org/z/avYTe567r
```
$cat mutant.c
void foo (void)
{
  register int r1 asm ("19");

  asm volatile ("# %0" : "=r"(r1));
}

$clang-18 -fsanitize=undefined -c mutant.c
fatal error: error in backend: Cannot emit physreg copy instruction
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-18 mutant.c -c -fsanitize=undefined
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'mutant.c'.
4.      Running pass 'Post-RA pseudo instruction expansion pass' on function '@foo'
 #0 0x00007f4ead2d4266 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xd2b266)
 #1 0x00007f4ead2d2170 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xd29170)
 #2 0x00007f4ead2d38c4 llvm::sys::CleanupOnSignal(unsigned long) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xd2a8c4)
 #3 0x00007f4ead2219ae (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xc789ae)
 #4 0x00007f4ead22196b (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xc7896b)
 #5 0x00007f4ead2cea67 llvm::sys::Process::Exit(int, bool) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xd25a67)
 #6 0x000055e771283c23 (/usr/lib/llvm-18/bin/clang+0x13c23)
 #7 0x00007f4ead22fc4f llvm::report_fatal_error(llvm::Twine const&, bool) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xc86c4f)
 #8 0x00007f4ead22fb26 (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xc86b26)
 #9 0x00007f4eb002ebc8 (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0x3a85bc8)
#10 0x00007f4ead87bc16 llvm::TargetInstrInfo::lowerCopy(llvm::MachineInstr*, llvm::TargetRegisterInfo const*) const (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0x12d2c16)
#11 0x00007f4ead597a89 (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xfeea89)
#12 0x00007f4ead688552 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0x10df552)
#13 0x00007f4ead41a0df llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xe710df)
#14 0x00007f4ead41fdc3 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xe76dc3)
#15 0x00007f4ead41a7d4 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xe717d4)
#16 0x00007f4eb5ab709f 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>>) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x1ade09f)
#17 0x00007f4eb5e4d5fe (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x1e745fe)
#18 0x00007f4eb4a69866 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0xa90866)
#19 0x00007f4eb68c1645 clang::FrontendAction::Execute() (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x28e8645)
#20 0x00007f4eb683fcc4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2866cc4)
#21 0x00007f4eb693c1c0 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x29631c0)
#22 0x000055e771283837 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-18/bin/clang+0x13837)
#23 0x000055e771280905 (/usr/lib/llvm-18/bin/clang+0x10905)
#24 0x00007f4eb64d7909 (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x24fe909)
#25 0x00007f4ead22194c llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xc7894c)
#26 0x00007f4eb64d72ae clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x24fe2ae)
#27 0x00007f4eb649f0f1 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x24c60f1)
#28 0x00007f4eb649f33e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x24c633e)
#29 0x00007f4eb64bb39c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x24e239c)
#30 0x000055e77128025c clang_main(int, char**, llvm::ToolContext const&) (/usr/lib/llvm-18/bin/clang+0x1025c)
#31 0x000055e77128df32 main (/usr/lib/llvm-18/bin/clang+0x1df32)
#32 0x00007f4eab7b8c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#33 0x000055e77127d1ea _start (/usr/lib/llvm-18/bin/clang+0xd1ea)
clang-18: error: clang frontend command failed with exit code 70 (use -v to see invocation)
Ubuntu clang version 18.0.0 (++20231018091808+48a53509e851-1~exp1~20231018091910.1571)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang-18: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-18: note: diagnostic msg: /tmp/mutant-692b2e.c
clang-18: note: diagnostic msg: /tmp/mutant-692b2e.sh
clang-18: note: diagnostic msg: 

********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8WUtz4zYS_jX0BSUVCfB58EGWrcykPGuX7czW7kUFAk0JGwrgAqAfOeS3b4GkJEKWdh5WknJlKKDR_eFDo7vJpsaIlQS4DJKrILm-oK1dK30p6IZKJd82qjXMXJSKv13OaypXkyhHL8Ku0aQyVAor_oCAXLeSQyUkcDRhiGlq1mCQksiuAVkwFjFqYBqE10E46_8_V5tG1KARvDa10qADMkNraxsTkFmAFwFerBQvVW2nSq8CvPgjwAv6_K8nSNJMD5rScPjrf-KYUYs2raXSTlk_-KwER5VSKMC5ew5wMUhnV_0DQhpWwljQSEiLdISo2TjxAOOoCDB2S8jVGDzqRJ5VTa2oYZANMEEBTsIAY-Q244bIte5mch05LWNF2fVYo8O-pfc0s_7WKmppjUBr1ZHXPSAhUUnZ7yC5G5tTKZVFsBEWNes3o2GFmGrekJDG6pZZoWSv7P72ZvZ4g0xbOlmKynaFNDRKW2TV4cEIu27LKVObAC_q-nn7z6TR6j_AbIAXwpgWTIAXiEqOhGR1y6Fzh847OoxWUwYBnqNGQ6MVA2OAI6Na3Q-7ldQYxQS1wJFuJTJMi8YOjvRoKfsd8XbTOGTdUDhF91qtNN0gqlftBqR1sNGO2y2Djs3jPPeKoinq_gvIHFQVkBvUUG1AI2oRSI5UhSpRQy-MB-G54oBWIEHTPbFkmHxopRRyhRpqDApwtmhlRz-6dwNfqKQr0AHO3LXZKN52fpXtThxnw67jE_rulbGThxlqDLRcjQ_YXTEqjXtywoONams_wFkQh5VS7qF37wCTEIWvYRiGWRUD5ZjHOE1Rd9ZkFpCZeTP9w70W0nYn8dQfZ74X0vRlqYzVQDcBTt2RCmkDXPQXZtEa7RxHlFv3idxoKWSAF9PpfkqUt7dfv0yifGrUNArwVfjKcYnTdHeXHeDoADCOsvAY4IdWPoqVpPUnKnkN2nRgzoKpiLLQw4QPMJGcxccwzWugsm3uBmQBzlvZhWWOaiVXZ4JHcxZ78IgPD0cFhY8bYlleUPAMxe8MpeV5DKWlZyjxDTGgaXbca7tw0_-4eRU2wHnnm3NUKlWfifCEppkHLx3gJQlkWYRzwrqc8S1DXfTqdEZuhacyO6C2YnE12nEfwpddqlj2qWJ8Q59ehATElDR2uKFn2z7LUxZXHtb8EGuJ07MYKrEfC4qRoTIMMZQs_7ghQvOkZPm-gsAk8sNknpUsGofJJ6pXYD-7WPxZVqofrNUL6Llq3ryj-ELZWkjoZAM8c2dxqOdhqFOcqu2hzdxhdc8f32CEOWZR6m3QD6tJkdH8DM5RAdC88Az5sTLN8yTB6B0926zpkubg4a28k9thj9H9YHoWj45CXiUJ9lD7ITSOaMjH129x74Buk_vfjBcyh9iDGx_ArTgj3wH3S1eP-O46DJ0LasoZ8aAmh8xmfJw7a1hR9jZE8z3oz5um3gH_SwFHGY89wOk46CS0zMKi6gvPIc1shL3qS_O71jatyzmj6WtBV1IZK5i5kSshYQjII5FPQDnoR6Care8a5yrGi90jUVeK_gLyG1J9WPmG0C2Vq2Mie2ofrRZy9QCVP7xlfHagcCBhNjj7eMlnaXVrxDM8QDWX9t7qgMz308_VcOkXoobHN2NhE5Abp8JY3s-0Uvy3hWVzsNKVos2LFhaW24J0tIhDRdvaLjnUYOEbC8lNZ_PHnah_CWFN07lR3scUyiEs_EuaeY4EMU-qHy_LjhqDLE4q8IyNc3IZ07TI03R8WPfutWf2-OQ76yNsqFcw_HzhcAwoLcI89fOQl9LTnEVpnIxxLrSSdu9VQ2EHrLXwkwX-MWA4hzyNkzEyHPrISMVY7F_F_kuHy-xUMvCwbS9BfnorPxexjqNPU8a8qIUjD31BWMRCL2r1OPebeFaMvsf8bpN9YXIW1EVKIhZ6qPFhIZ2TDDEWLTdU-GF_pjV9c6GJzNma6n3Z1McNfwzPUf-N6DvBjwvznGQeRHIAMSzC5MdUuhWeytg7q5hnRXgmiuMKitCrx3Dy7p0tZqNIPdfUrB-AqWfQb3PnsK92_4JNK6j98nb7uWGpu7PoPsv1F_Mno-nR18GYeXtIDwnDFMbOzbV43hY683k0V5sNlfwweBx1pl3uUF1qpLWXNfYZccgWo2SzXLLX1yjqf5TUCOYyi3CYOhf1hN3A0moqrNlOH6ijde1upNKjeScy2wflD7wjnPIWTL00gjOf6aIKq-gk012soO_i9JZ-L7AcLHQCpwqV_yM6O3i7PScZLA2ryCMjPySDkNNud4KMX1VpTjPxqypvhbGn6rENreuvwKwa6uG9tzZUOEcZvnV8L3mDS_2FFBLi-5Of7uOyJAU7Bfd69OylqyN56hT1fyOF5wrZgEnhhbvdN9tdysHJQNo2L25Bd2Fm9v4zg1L1EMtHrvWDmdBZ9WBFB7B4RTBygH5Mr1vm6fW-GJRZmbM8Q8ulI2xpLNV2ORhZlK2oeYAXKzc3mX_99eXf5e4nnuLMWTLtlvj-sZvs9ExZQGYkjgMyC_fmDxJ8xiOgqDf8Qxtz63b72jYqdg2dXfcCVUNZiNjgWxUVNfC-Gwevwh0ZB5SFznprAE2ekVXIACAxqtoGQ7-VrbTtoPoZdNceiPJpOA179FcBvsIhJlEY5WER5aEbi3OakCQsIE-iSfQnvDbRnyOhIgqnUZLto2H_gun28JqnyzSeNGxSC9m-TlayHUTWGihHG8XBvbmjRhnx2k91xWRdA78Wuu-oDZQ6Ct_RJZV7dZshvnuRRhuz6tYNZ_aBv1GrbuiUzZ6eZvNP6OnTDVrc3d7e_fPzP35Bi8-3N4_o6a4bvvrtF_Rwc3_38LTrT90f63Tlxt2xk92unYAG1KV64IjancrvpAAv7KYJ8KJvKE3SApcYtp3ED-kw6584i3OdyLYDfMEvCS9IQS_gMsrCMAtTUqQX68uCE5pxTEKOw5RVNMxwXKY4ylgSx5CyC3HZOXCESYhxStJpwqsiI0XEYgpZlhRBHMKGinrqrvBU6dVF19y8zEhUZBc1LaE2XfccYwkvqJsMMA6S6wt92V37sl2ZIA5rYazZa7HC1rBvqnd90e_t2U4vWl1f_nxXtsP-vwAAAP__w1Ve4A">