<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/71178>71178</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang crash: Assertion `isReg() && "This is not a register operand!"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
shao-hua-li
</td>
</tr>
</table>
<pre>
Clang at -O1 crashes on the test case.
Bisected to 2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0, which was committed by @djtodoro
Compiler explorer: https://godbolt.org/z/74MTEPh36
```console
% cat a.c
long a, b, e, g;
int c;
short d;
int *f;
int h() {
long i;
j:
if (e) {
int k;
g = b && -1 / a;
k = *f;
if (k) {
i |= 0 <= 0;
if (c)
goto j;
} else {
d = 0;
return 0;
}
} else {
int l;
for (; d;) {
e = 9166129423;
goto j;
}
return *f;
}
return 0;
}
int main() {}
%
% clang -O1 a.c
clang-14: /tmp/tmp3wrk7acr/tmpxyxr54it/llvm/include/llvm/CodeGen/MachineOperand.h:361: llvm::Register llvm::MachineOperand::getReg() const: Assertion `isReg() && "This is not a register operand!"' failed.
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: /zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/clang-14 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj --mrelax-relocations -disable-free -clear-ast-before-backend -main-file-name reduced.c -mrelocation-model static -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/zdata/shaoli/realsmith/watchdir/reduced/case_7TTZKO7D -resource-dir /zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/lib/clang/14.0.0 -internal-isystem /zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/lib/clang/14.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O1 -fdebug-compilation-dir=/zdata/shaoli/realsmith/watchdir/reduced/case_7TTZKO7D -ferror-limit 19 -fgnuc-version=4.2.1 -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/reduced-b68b25.o -x c a.c
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'a.c'.
4. Running pass 'Simple Register Coalescing' on function '@h'
#0 0x00007fd79170c704 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#1 0x00007fd791709e2e SignalHandler(int) Signals.cpp:0:0
#2 0x00007fd790ae8090 (/lib/x86_64-linux-gnu/libc.so.6+0x43090)
#3 0x00007fd790ae800b raise /build/glibc-BHL3KM/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#4 0x00007fd790ac7859 abort /build/glibc-BHL3KM/glibc-2.31/stdlib/abort.c:81:7
#5 0x00007fd790ac7729 get_sysdep_segment_value /build/glibc-BHL3KM/glibc-2.31/intl/loadmsgcat.c:509:8
#6 0x00007fd790ac7729 _nl_load_domain /build/glibc-BHL3KM/glibc-2.31/intl/loadmsgcat.c:970:34
#7 0x00007fd790ad8fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#8 0x00007fd791d8fadd isMoveInstr(llvm::TargetRegisterInfo const&, llvm::MachineInstr const*, llvm::Register&, llvm::Register&, unsigned int&, unsigned int&) (.constprop.0) RegisterCoalescer.cpp:0:0
#9 0x00007fd791d95ada llvm::CoalescerPair::setRegisters(llvm::MachineInstr const*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/../lib/libLLVM-14git.so+0xec2ada)
#10 0x00007fd791da10ac (anonymous namespace)::RegisterCoalescer::joinCopy(llvm::MachineInstr*, bool&) (.constprop.0) RegisterCoalescer.cpp:0:0
#11 0x00007fd791da38cf (anonymous namespace)::RegisterCoalescer::copyCoalesceWorkList(llvm::MutableArrayRef<llvm::MachineInstr*>) RegisterCoalescer.cpp:0:0
#12 0x00007fd791da70d5 (anonymous namespace)::RegisterCoalescer::runOnMachineFunction(llvm::MachineFunction&) RegisterCoalescer.cpp:0:0
#13 0x00007fd791bb2a38 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/../lib/libLLVM-14git.so+0xcdfa38)
#14 0x00007fd7918a12c5 llvm::FPPassManager::runOnFunction(llvm::Function&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/../lib/libLLVM-14git.so+0x9ce2c5)
#15 0x00007fd7918a1509 llvm::FPPassManager::runOnModule(llvm::Module&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/../lib/libLLVM-14git.so+0x9ce509)
#16 0x00007fd7918a25f2 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/../lib/libLLVM-14git.so+0x9cf5f2)
#17 0x00007fd7970948a3 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> >) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/../lib/libclang-cpp.so.14git+0x1bef8a3)
#18 0x00007fd797472353 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/../lib/libclang-cpp.so.14git+0x1fcd353)
#19 0x00007fd795e300d9 clang::ParseAST(clang::Sema&, bool, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/../lib/libclang-cpp.so.14git+0x98b0d9)
#20 0x00007fd797470ce8 clang::CodeGenAction::ExecuteAction() (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/../lib/libclang-cpp.so.14git+0x1fcbce8)
#21 0x00007fd797ef89a9 clang::FrontendAction::Execute() (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/../lib/libclang-cpp.so.14git+0x2a539a9)
#22 0x00007fd797e8238e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/../lib/libclang-cpp.so.14git+0x29dd38e)
#23 0x00007fd797f8c223 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/../lib/libclang-cpp.so.14git+0x2ae7223)
#24 0x000055efe3794127 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/clang-14+0x15127)
#25 0x000055efe3790778 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#26 0x000055efe378d361 main (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/clang-14+0xe361)
#27 0x00007fd790ac9083 __libc_start_main /build/glibc-BHL3KM/glibc-2.31/csu/../csu/libc-start.c:342:3
#28 0x000055efe37902ee _start (/zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin/clang-14+0x112ee)
clang-14: error: unable to execute command: Aborted
clang-14: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 14.0.0 (https://github.com/llvm/llvm-project.git 2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /zdata/shaoli/compilers/ccbuilder-compilers/clang-2cdc6f2ca62e83fec445114fbbe6276e9ab2a7d0/bin
clang-14: note: diagnostic msg:
********************
%
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUGltzm7j61ygvGjwgjIGHPLh2vO1sM800Obsz58UjpA-sBiSOJHLZX39GAtvgONt2d7bNziQYPknf_YYENUZUEuASJe9Qsr6gnd0pfWl2VAW7jga1uCgUf75c1VRWmFocfIow09TswGAlsd0BtmAsZtTADIVrFC776zthgFng2CpMGGeLkjC6IJDFJbD5PImieVkUsCDpAnJaEJryEJEVftwJtsOP1GCmmkZYh6J4xmge8i9WcaUVHpNZqaYVNWgMT22tNGgUL_HO2tageInIBpFNpXihajtTukJk8wcim3R-fXd1s4sXY0xoEfZ_TEmjahigJMGMWkxnrAfUyinCcVq4C7hLheJ3_aiQFrPDk9kpbTGfjCKyLCeAHSIZIjlG6QDE2NMQh1lfnCj9kCgxIhmczMfYIbo_LHCQCqN4jQuMyAKRBQ4ijMgG08mcez9nwpFH5oncvyCCscAoXbk1IUZxfzNZuV_LEMnHUIwrZRX-MpmM0jWG2sApEY7PIdZgOy1PwChd7x_OY3N6qY9LSqUdeyh-11vlpYTgiefRYhGRfE7iEy7OizE8DCye6HPE4wsZDmOOz4YKOfKF_RAiycgVfRy6IDw4pAcF0dw5PiIb27T9NX7U9yllun96en7SyVxYRDZ1_dAgshGS1R2HI2ClOPwCEpHNNWU7IeFTC5pKPtuheBkvIkfAT42XKF5-hkoYC3oEmi7rYRXYz1ANYrnIsg7N0hjQViiJ0SIU5jhj8FZEyN1OGCwMlspiivWemhqQkwgRgkiKSypq4EPqufl4tby9wqYrGuGWFV2FNbQuCq06SQtFV5mZY35IDJhKjgel-Lzm0xwuKLu3mjIf6K2GVisGxgDHRnW6B7uV1BjFBHXpSncSG6ZFawe2bi1l95h3TXuI5HDWO9SNVpWmDaa66hqQ1gxm_INTSxHZuExcC0Q2bEh0xt2zohM1Bx1MoN4Rvj3Xbgrnb5u9_-CAsQgHVou2BvyULbaLedDJe6keZVAL2T0FlexwAI2wgSq-4CBoNNT0KdBQK0adOQ0OuDC0qCEoNQAOWA1UB9TYoIBSaQicOkFyHDhvD0pRQyBpA1gD7xjwGcMe64AvaBSHGhtLrXAjpaYNBK0S0rpMv5ZKAg7KhtpdAFpLhYOybAOmpDOZRfFaSRyUUgVadZILWQVuLg4a74q6Y1bpgNaCGjA4KDv5KCQPrJPAoHhNcGCprsAGrO2cToLFHAe2k-ABFUjQjjEORVdVoN2QkBWK1xUvcFAy9QCaVjDYqZeJC8f6ORtroLVphN0hsnmklu3cVAf2unG2oga26d3df3_9lK5xoKH3QYfyRzlNLYr9MkQ20XwWzkIceINIWgfCPBsLzc_k5pjbzvPVGadU52L1N071RCrGENkMcXGIB0c1QmQzm728nJn7kho8uRv2kuoxP5_i-fPV30_C15Og9E78D3lqCVorHdTC5eUox0FZyY4FD6CNUBLF6_mMzCIfMbXSARe0kspYwVxUUs61ERUO1tvtL6vV9v3yt6vt-vfl5w3ZrjYftsvbaxSvIxyoYwEcOAmKRVaQZKZw8ITZsWhGM9fAgCpRfIVbqg1o1926zKRK7NJSP48MadrVxj7cvWb6wXgY_NxJF_W4pcZgRNJNJ5kvbjcOcE0lrUC7WqUkbhTvanCzHC8kHSrE_BVUt6Jx2fhQbFeK1mCYyzE9vnJPC5EUzcOd--m7DUTiEIdPYRiGacnTPEpDloZzfKOFtL4i3bmydisqSev3VPLaMZk9KMERWbpi3A-ZGWtd3Qr9_wF3dII7BwL4FJmQ9quIyBhRSCEL89A3afvAOxNGtSjYzKjZApF34dM8DvPw2HEiEscvcIYF1lS49tBVflE7H60cmuDd-4_xr9eHRzKLXTwbz_I-ks2z4dC6DNVJ8dQDHjwfsnOPHvWMoXiZuDYpOnIyn3LC0izJMS1cR_KtnFje68Gv8kQyR2Rk5-SUSEpyXIHd9nxvDVSut9g-0Lr7Zg0IaWufJylvTMVoTzoJc8fAkfbiHO2trLdu4ZYrV-f_Hsk8dR4Tz4800ylNnpV88X0uE8clX0xcJpv4M89c1sHCXKsH-OBaBUSyY6d755uCfVR-kKUaelvXvq5etsQew37Kcjplj-XF2pOBTvpXddej2tdAroHOZp5Oq1XramF-SB5D7gB9Pg7zqQLyhHI64uaw-oa6quBA5qgCM1HPK1Lng41-XG_rg7d3iVoUHz_-dh1E80rYmVHeDYARyunBD1xam-ZMTqOQMsc3lUo-N6oz2PWrpvVvBPnUUgcd9eAvSsiVap9f1c3gC4VS9d8yn-M7OuE7zlj5F_lmqn3eg35X-v6jcAYcy9D5DnmpNX3-DCWKV6_LF199hxDkRIg05MlfFEJ38pMcmNkX5HOGOI4tvoPRSYGJioLQOHsZ9nvcrg8YcXWWnRM-3lqkMF7SOJtEyqS0RRmNCEtGOtjcOLH33c-_W_qcAWHJRPrkVPokzL9B-mvf_00dcQC9VcldyR9LvjiRnCQlGUleQ0XZc38_0sGHpq0Pevg3yV8mJZnIP-k-0jCfZzTuN-Z6ea4aYd_12xyfOtt2LneOhtfHd5srWQkJQzEfTXkPlIO-BarZ7lPbb6yM-4vR1GHT7iuz-n7lK5M-Ulmdm3K01K3VQlYu40-bnMGAyxOEgxKWQ2SvsLHDrmAnxf862LZWT2qHpo_b9lELC1tjNdBmsohDSbvabjnUYOErC-MrPJSen-tRPRLWtq739J7l3SoqoMxoPPGrSQeazlMSJ_EZda6UNF2zTyr9u9adptL0L-3_keLE4Za3dyslLTzZNxFjr2mkZDxOphqZtKQJxGHI87FGbtyL-_L2birvLTR0cN2-s9r_vlHJ86wI-STFkvDEFUIG2ZmoHyKrzzpPwDoL-2DL3qy4UckKBpNWgkya1xTKLKcTQ2-0c-BDKhkL_JZFJTSJczo1LZmKmpE4g6lpe95cA00lg_PWfV03bzjESc557A8vj-qYNNJpmTFCpsW0F_yolYfhaGCqhBdaewvvm696BaSETDId2ffSSQIlxGk-j0iKGYu2w6HgsdSNXrrYjo5er121W-EpjKzwaD_vR2vjcDLpwz6JSDqROTmROUzTDO_tvYrufM4eSX7b0Lr-DZhVQzN5RgHe-bkWD6-8uJHFlGjG40WEhz2qn6gdiBfRRDknW1wsD7MYb7fOq7bGUm2337Oxxky3987-1g96PH6LLZ4Tdz2Sz05tQwBwT_gnu1FE4JhBxmff_oTB3XSSFjVgqzD0zuS_JOlPpPGyUNoC_5Pl_RF7OWTV_drhnBnzzmPut4edKjoDOHjwMAAsRvlpzCMeTjrwcGCGSHbykYqwu66YMdUcD-TdT9Bq9QWYnVXCfsd3NAPtvu93Ur12njvM22mgHPvTVje7VUY89UM-o9Y18LXf9vuRZ9MvbCSV6_uX-Hg8hBtTHc7UfZr7q38n31rsPwa64Jcxz-OcXsBltMjzMEqiOL3YXRYFIQnJIkbLYs7DRZ5TTggjxaJkUULCC3FJQhJHURhHJM6SdEbDOHPvy1BwzglboHkIDRX14SOEC2FMB5dpFKXZRU0LqI3_LouQ4YCToGR9oS-9XxRdZdA8rIWxx88YLqywNQxfa_nvF_6Zry0uOl1ffp8DI7Lx4jlv8BL-PwAA__-PdL8E">