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

    <tr>
        <th>Summary</th>
        <td>
            opt-19 Segmentation fault with the pass "codegenprepare"
        </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>
    opt-19 Segmentation fault with the pass "codegenprepare"
Compiler explorer: https://godbolt.org/z/T1jTrqbro
```
$cat mutant.c
char c;
__attribute__((minsize))
void
testc (void)
{
  (void) __sync_fetch_and_add (&c, -1);
}
short s;
__attribute__((no_sanitize_undefined))
void
tests (void)
{
 (void) __sync_fetch_and_add (&s, -1);
}
void
testc2 (void)
{
 (void) __sync_val_compare_and_swap (&c, -1, -3);
}

$clang-18 -fsanitize=undefined -mllvm -disable-llvm-optzns -c -emit-llvm mutant.c -o mutant.bc

$cat mutant.bc
@c = dso_local global i8 0, align 1
@s = dso_local global i16 0, align 2

define dso_local void @testc() {
entry:
  %0 = atomicrmw add ptr @c, i8 -1 seq_cst, align 1
  ret void
}

define dso_local void @tests() {
entry:
  %0 = atomicrmw add ptr @s, i16 -1 seq_cst, align 2
  ret void
}

define dso_local void @testc2() {
entry:
  %0 = cmpxchg ptr @c, i8 -1, i8 -3 seq_cst seq_cst, align 1
  %1 = extractvalue { i8, i1 } %0, 0
  ret void
}

$opt-18 opt-19 -passes=codegenprepare mutant.bc -o mutant.opt.bc
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: opt-19 -passes=codegenprepare mutant.bc -o mutant.opt.bc
 #0 0x00007f703860d216 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xdc1216)
 #1 0x00007f703860aec0 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xdbeec0)
 #2 0x00007f703860d8f0 (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xdc18f0)
 #3 0x00007f703efb7980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #4 0x00007f703888ac18 (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x103ec18)
 #5 0x00007f70388827b2 (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x10367b2)
 #6 0x00007f70388819f7 llvm::CodeGenPreparePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x10359f7)
 #7 0x00007f703b2fe1ad (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x3ab21ad)
 #8 0x00007f7038793474 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xf47474)
 #9 0x00007f703a6ed7cd (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x2ea17cd)
#10 0x00007f7038796ad1 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xf4aad1)
#11 0x00007f703a6ed5fd (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0x2ea15fd)
#12 0x00007f7038792214 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.0+0xf46214)
#13 0x000055b8348a38f9 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (/usr/lib/llvm-19/bin/opt+0x298f9)
#14 0x000055b834897e62 optMain (/usr/lib/llvm-19/bin/opt+0x1de62)
#15 0x00007f7036a5bc87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#16 0x000055b83489276a _start (/usr/lib/llvm-19/bin/opt+0x1876a)
Segmentation fault (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWEtz46gW_jV4Q8kF6L3wwp207517O3VTk1Qv7kaFAMnMINAA6jx-_RSSX3InqWScRbtUZdCB833nOweERJ2TrRZiBdIvIL1e0MFvjV1J2lFt9FNnBsfcojb8aWV6H-ES3om2E9pTL42GDR2Uhw_Sb6HfCthT5yAghBkuWqF7K3pqBSAEoGuA1lem66USForHXhkrLIjXcOt970C8BmQDyKY1vDbKL41tAdk8A7K5x3_c279qayYfIEO7a-qShFEPu8FT7Zdsusm21EIG4i9Tt6qo91bWgxdVBUgBSNFJ7eSzAKQM1zjqh5F8annhPIOAFOOtvR3kO3fwxASryj1pVjXCs21FNa8o53DEyBggVzDCwcGeCcivp4bbGuuhe4uiNpWjWnr5LKpBc9FILfjrhN0bhN_H173B90wc8iGwH1RVzHShFEZI90D7c42uYBS_iHxMs6K6jXABo2avC4ivD8rAqFPqRwcjLh2tlYhCLzK9f9YORgxGopN-vHkoFhiZfbtm52jHojrYEsQgiK8hd6ZShlEFW2VqqqAsIAohUCVbDfFhuHtlOM5Ox5NT6CmakzlBSwgSNOo-ilbCg9hCe_sU1s6hMFM0YlJvOsls9wBDfntvg4tRbFnACEMn_qqY8z-RhtAKD4_ZPkvDm-zcZezG8gvSvESPXE6PkXfzY13_yLbtz7rtG_Ge4RtCApLi0Zt49JYy_4OqQQRwKIspVAjy6xE0dNG7IgQkGbfhAu524yhsucKB-Hq-5x6L96TKTX-s5ttvX9d3X6Eb6k56SGE9tNCKPmxL3pxvytJvh3rJTAfIJiyh3V_UW_OHYB6QjXRuEA6QDaSaQ6mZGrgYnwnMUreFNWV_BhnEcoK_85T9CfnQ9YcEoCUcf7fWtJZ2kNp2CE-awOPicCEgMYLoESGE8iZHcZEhTnAGx3DiNYjX7slNjVsrtR8J3gfGgBTHQZY-VMZ5K2gHSDbmUfuxqkJxbQZngzay3iuES0A2tdSAbJbLo0nW3759v1k6s8TlEgHyBT1yhgnODhtqIIzPCFPB0EuEfx_0nWw1Vf-mmithDyvxYk61EAzNOJFzEYsGfUrwRTMHik-BRFPnZYFgVVnhvLGisn6HOjl9LLIqSyIl9fAYtXqYDL3fWkF5gJpwMCmLOUwyi6coKMPF5fFgFAuGixlSeoZE8pp8ClKW12SGlJ0h4bLJT-rmynDxL6Fvp6VzS92ujOygZ7W-GTQLp7xdoR8Na03Vk5PuhmrahlPc1QuT4q_jvE-oQozitGzyWYj5aYg1aQSm_HKkmNYEUz5DKmZi5mWc5MmJFkG-N3X4R8qF61dOSZPkSZ7MdCpPdaKZ4Dn7hIwQQXHOTs6ZJMboLCMZ5fhEihvDByXuzT7skKE1p7039mVRpwkfknQ35TMFpZTjWZj4XNC0-SRB02YuKDkTlBD8nhLf6_Zx0V4r718jExnByUyf_aMoTesiTgoaF015Qs8OY43dyl4oqefnhTtvpW5_F808olcCvae2Ff6Gsu3oZ_2S9ZusLbVPv-nG_Nb16udRxqj_Db4f_EaqF5xcZH4lnLW19CncPc3MqIkaWjltPK-Md55P95rDLnU1HdtPZQy-vgxScWGnPO-qaObV9L7yxqipN0XxX6n5W6O-CysbKex-XB0sH_5_T9mZ3k8LsCyaclZeyby8ylxkJBx4b6jUH3CMucjIzPHsxJHRtGZFDqtKyZpVzlPrq26C2NRB23DSD7bo6vt_Hv5fH7pkSXJANswN-9UzNUfj6GfJQLyOkwTEa3SEz87iInlG4QT8kbCKPKOHsF74-gRIwYwV48uEONnY9h-KFnwV8zIu6UKscI5jnOVZEi-2q6REmDQZJzmmIs1qVBDKGMdpKhqUJ2whVwSRBCU4RXmaoHiZJUkZZ2nJ8ySum7wECRIdlWoZyC-NbRfje9CqKLKSLBSthXLjlzVCtHiAoxEQAtLrhV2NAddD60CClHTeHb146ZW46IPbYrBq9c_f4sYA_g4AAP__yi3ivA">