<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54166>54166</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang static analyzer crashed when running cstring checker with initialized param
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
yunwei37
</td>
</tr>
</table>
<pre>
test cases:
a.c
```c
#include <string.h>
int a[20];
int main() {
int *b;
memcmp(b, a, 1);
return 0;
}
```
clang -cc1 -analyze -isystem /usr/include -I/usr/lib/llvm-10/lib/clang/10.0.0/include -analyzer-checker=alpha.unix.cstring a.c
```
Stack dump:
0. Program arguments: clang -cc1 -analyze -isystem /usr/include -I/usr/lib/llvm-10/lib/clang/10.0.0/include -analyzer-checker=alpha.unix.cstring a.c
1. <eof> parser at end of file
2. While analyzing stack:
#0 Calling main
3. a.c:7:5: Error evaluating statement
4. a.c:7:5: Error evaluating statement
#0 0x00007f0e69d054ff llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/lib/x86_64-linux-gnu/libLLVM-10.so.1+0x9814ff)
#1 0x00007f0e69d037b0 llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-10.so.1+0x97f7b0)
#2 0x00007f0e69d05ac5 (/lib/x86_64-linux-gnu/libLLVM-10.so.1+0x981ac5)
#3 0x00007f0e704d43c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x143c0)
#4 0x00007f0e6f91d42c clang::ento::SimpleConstraintManager::assumeAux(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::NonLoc, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1f0542c)
#5 0x00007f0e6f91d338 clang::ento::SimpleConstraintManager::assume(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::NonLoc, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1f05338)
#6 0x00007f0e6f91d2b5 clang::ento::SimpleConstraintManager::assume(llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>, clang::ento::DefinedSVal, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1f052b5)
#7 0x00007f0e6f89d17c (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1e8517c)
#8 0x00007f0e6f944e3d (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1f2ce3d)
#9 0x00007f0e6f94f6da (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1f376da)
#10 0x00007f0e6f8a194b clang::ento::CheckerManager::runCheckersForEvalCall(clang::ento::ExplodedNodeSet&, clang::ento::ExplodedNodeSet const&, clang::ento::CallEvent const&, clang::ento::ExprEngine&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1e8994b)
#11 0x00007f0e6f8d289a clang::ento::ExprEngine::evalCall(clang::ento::ExplodedNodeSet&, clang::ento::ExplodedNode*, clang::ento::CallEvent const&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1eba89a)
#12 0x00007f0e6f8d2624 clang::ento::ExprEngine::VisitCallExpr(clang::CallExpr const*, clang::ento::ExplodedNode*, clang::ento::ExplodedNodeSet&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1eba624)
#13 0x00007f0e6f8bbb8c clang::ento::ExprEngine::Visit(clang::Stmt const*, clang::ento::ExplodedNode*, clang::ento::ExplodedNodeSet&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1ea3b8c)
#14 0x00007f0e6f8b7f01 clang::ento::ExprEngine::ProcessStmt(clang::Stmt const*, clang::ento::ExplodedNode*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1e9ff01)
#15 0x00007f0e6f8b7c43 clang::ento::ExprEngine::processCFGElement(clang::CFGElement, clang::ento::ExplodedNode*, unsigned int, clang::ento::NodeBuilderContext*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1e9fc43)
#16 0x00007f0e6f8a73ec clang::ento::CoreEngine::dispatchWorkItem(clang::ento::ExplodedNode*, clang::ProgramPoint, clang::ento::WorkListUnit const&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1e8f3ec)
#17 0x00007f0e6f8a7054 clang::ento::CoreEngine::ExecuteWorkList(clang::LocationContext const*, unsigned int, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1e8f054)
#18 0x00007f0e6fb203a9 (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x21083a9)
#19 0x00007f0e6fb0c02d (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x20f402d)
#20 0x00007f0e6e26dc13 clang::ParseAST(clang::Sema&, bool, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x855c13)
#21 0x00007f0e6f6e3e58 clang::FrontendAction::Execute() (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1ccbe58)
#22 0x00007f0e6f69c8a1 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1c848a1)
#23 0x00007f0e6f747daf clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/lib/x86_64-linux-gnu/libclang-cpp.so.10+0x1d2fdaf)
#24 0x000000000041229d cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-10/bin/clang+0x41229d)
#25 0x00000000004105b1 (/usr/lib/llvm-10/bin/clang+0x4105b1)
#26 0x000000000041036d main (/usr/lib/llvm-10/bin/clang+0x41036d)
#27 0x00007f0e68e680b3 __libc_start_main /build/glibc-sMfBJT/glibc-2.31/csu/../csu/libc-start.c:342:3
#28 0x000000000040d7ce _start (/usr/lib/llvm-10/bin/clang+0x40d7ce)
Segmentation fault (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVWN9z2jgQ_mvMiwaPLPnnAw-EkLvcpJ1M6bWPjCzJ4KuxGVlOSP_6W9mGIB9pCcnd9CAxtqXd_fbTSrtSWomniZa1RpzVsnbo1MHXDu6vzOX9Y4i7v_0zoXnJi0ZI5NBZrVVerty1Q-fH0nmpEXOCK4Kd4NqhV8O2DctLh8QOSZAT9a0IPqbNIdP0IGJebuSGb7bQPXXIDNTCxQNJq4-SulElws-2ousB_mMMvGDlCo0599CYlax4-i7ROK-fai03AOCmqRVc936Obw-vijw11-JhM_bw4blVB78eduF7JHnQrsZ8Lfk3qRx6zYrtmrlNme9c3vGHntk-hXmhGf-GRAMk7AcJuw5O7lW1UmyDmFo1G1lqM4bov3LtfM9QB9kzkCFkZJVBtKAtU7VUiGkkS4GqDGV5IbuexPT8uoZn1BkximpDgnFwT1QCkYjRjBWFaW4jqm2hRtoQSqcR_AdGZq5UpZB8YEXDdK8N-ADOOhn_AhnU2sc7DJ8owzJMBA78LEOGQjNQdAqsdzf3wIVuh_GzYlxCLD93UuxxWQFbkm0cErZTwsyMnv9dHC5Dfww-Nrvxqmy6hru7Lx9glNy6cmEqXOFdEntg2syKAzZvgI1GKT6F7VNTLvIV8Pw7K0UhVb2fmBegiDIwYqEgQ4YYDy50ECQt1fRIdYR94VOO0XKpYEmrlFwqfYadrV4D8cLYwa0dz2ixzPjHHmSJJ3zCu1nW8QcBUXV3i3yzLeSsKmE0IRz1B4jelZkYppHVNUzSabOzBv-21Kqp8wf5SWazUt9r6D07qbyf7AsThIgbG2bNhbXwZO-PVXlXcdOcVlVx3nC2isZ8u21Z7-nIIKYJtwgJhoRQGl9MyP-ODXDWYiMcskHS4Ndm41pmeSnF4gsr3ocS8NiiJLIoiRPhRfxS9TIOQNpSH9uM-76k4mL0hIO0pT4ZqM9CwS5WTyOQPqg3qzK2yWFe4qenx2nW5VUrTFRT9q_rm0rNITmZBAjoTmqY77ZFJaT4CJeF1G16eSEoBl37KPqBgLE7f4Dnn3cF3WperiDozk5wL8RCAmRZbHo2m4LECfspiK7l3-EOqtdXUXY5GSkDXy0yyJCMkPjnkfElr3PdwoMGm5H92z3ml907l4ZTzL6FBvDSooHaNKRpGr-QsE_SYLu_0Bv9q7rOKHhmue4PXIdf7zzXIYVwWdfG3Xch4HKvkgxAW14FQ6-4T8_zatt5Nbv5bV50pbsd20fvzx_ZpqyhXpbC7FZ_UHIIedXkhZAKMr6WO_1mWsBri5ZwkEkiKl-I8xnUw8e0iLzeMs3XXyv17Rb2NOesgf8c_b7quK9-xIMxcZfX-s8yf59lL87ATYuHaMgDlKzn8TDfSd5oucdo0wAVI-z7qrIfPmsODEPgHYu2tzADjlvM2JVSSjBll6onHo5B2lJvV0op5phcWogRnPkgfayeWJWSJKHgnjXt780JwnTxebBeyQ3rk3VX2b61wo2DAAxbyOyqI5RUBtYO6EaZmCnFlJsAsmLt7M31yTHmPAVTFhY76YcJh5LyGMus2mxz2NbfQoCxktuR3wO0CByAf9Ns5bEPcCy8dnaO_Eiw7Bhvj-wZ9kM_DwdL99CtN62ugmQAw8K5T6Xdx_cISQTi3Fv2Z5fPU36qFHuC6W4m-podFUr9Hsx6By8eqlxYcE-fv6XGzP78DUB2ECyMwQAjDlLvlTqNiKUzHOqkoWhP116rGOQsxdYyHcMfTilaLs2QLGEMlV72Vm5Skzfhd2XaxvWH7OqPz4dH4lLPmKrNeLru4bbra_S0x3jUJ-b6bD62_cIi4hJ1hl_nWSt58GwhV6Z-aCMUZawpWm0cEk17YCuPONgf6o7EhIqEJmykc13ISXdia04Xc472p6qIK1avIcM8rmWJYNtXmiPI_alqf-SKHnO9hhyU65wV-XfovWWQUkaNKiZrrbftCR-5MdxBxyZ1ebXpndv7CBXSX5Jrc7Bb142s4SbwvTAcrSeeF5LQT2OW4IBlEUxV5ksPhpWHIaxC0ahgqSzqiRNcOYSU8hG1KuDeCa5H-YRgAhkHvrEXkcSNOIWtdCB8imUUZL7jY1iq88I1ONxKrUZq0kJKm1UNjQVk5Pq5kdVtypWtOdDPGr2u1OSpKR9lTqNRa3vSYv8bMZ1gZw">