<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/56801>56801</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang static analyzer: dividezero checker warning on unreachable line
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
kangeroo-gong
</td>
</tr>
</table>
<pre>
For the following program:
```c++
#include "map"
using namespace std;
class Qes {
private:
map<int, int> map;
int num;
public:
void func(int a);
};
void Qes::func(int a) {
if (a==num)
return;
auto iter = map.find(a); // no warning without this line
if (a!=num)
return;
int c = 10/(a-num); // this line warn Division by zero
}
```
There are two if stmt make program can't reach `int c = 10/(a-num)` ,but the checker still warn..
(Tested with **LLVM 14.0.6.**)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNU02P2yAQ_TX4gmJh8OfBh-ymOW0PlVa9YzOx6RKIDE60_fUdSDbptlJVi2BnYN689xgGp977vVtomIEenDHuou1ET4ubFnkkYkvYjrAtqdl1jIQ_xXGNcqHtaFYFlHB-lCecbytpXn3EsvII_iRHoD4oIm65o5He02_gKWluodOizzLAvSjFJ4KKZ20D4c80vsSXa-zpsQfD1K7He-y0DkaPn2DOTit6WC3Sb-N2SXh330-a3eM7zWk7cosYYvtH3oNwKn5A7a0kAjF2kQUC3xfjs0BYF_uJsFyDozrAQjEnyskP2qoEk2gh4h4HtY5e5GKjiRcdZrcGPCbtqdEW_mbAi_9nELWMqXrBUrFWbm6pj_L3WokF3emz9tpZOrzTn7C4h3mfW-T693WGBajEX7i4yNGHY0Ctb_DRXHSUlvAmID85zpRi6j9o1QxpPQ_JAqDjDOMb-ueDNibRy_PfDxAzX8EHUMk4zMTI9uXl-1dalDnL6_waQeAM-qKuOtYVrK0z1QvViU5mQQcDPTYpeu-DDHqk0krzjsKxI6hCLxREF-5UPk4KDVptkiQHA8m_bF1MP4dwSg2VzJ2Q1jrko0Nxe2POH68NmvMDRmz3vfZ-xRbk-6puWZHNfS1KaAbJVNnJrmg7KTkoXkGjDqKtmy4zcgDje1LhFeUWLjRBxEtZ7TLdc8Y5azgqFS2r87IUAsaiqQSryqpRpGRwlNrkkUfulilb-kRpWCePi0b74B-LeH31ZAFSOcTHpp7d0r-hY2iL20zOTlki0CcBvwAERkod">