<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/84266>84266</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] feature request: in for loops, optimize out strlen when we can check for NUL
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
IAKOBVS
</td>
</tr>
</table>
<pre>
Transform
```c
char *
f(const char *s, int c)
{
for (size_t i = 0; i < strlen(s); ++i)
if (s[i] == (char)c)
return s + i;
return NULL;
}
```
into
```c
char *
f(const char *s, int c)
{
for (size_t i = 0; s[i]; ++i)
if (s[i] == (char)c)
return s + i;
return NULL;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMk1GPmzAMxz-NebGuCkkh8MBDOVRpWnV72G6vUxpMyRZIl4RNu08_hXK3al9gk1AIsf3Df9tRIZjLTNRA0ULRZWqJo_PNu8P7D-3nj9nZ9b-aT17NYXB-AtYBO2xryW6Pvn3rUXkEvlkH4JV2c4j4eh6AP6KZI2rg9YaQ7W2DiDi45FYF80JfIhoE0SED0a7bRwzRW5qTQwoXLQJvgbfmDZYYwGozrBQoWgNFlygJlLIZlQde3_2d1cBqT3HxM4bEQwPiLqPN9PR8Or2dg-z-kn9fEzNH909q9Kr3fypM1jeir0WtMmpyyWophZBVNjZlRbzqhTgzYlTlQ677vqw16UEMSrIyMw1nfM8EkyxnvKh2g1QiF5XY5yX1WkrYM5qUsTtrf0w75y-ZCWGhptrzssysOpMN60Bzrq2aL8B5mm3fJP-H83IJsGfWhBj-EKKJdr0Ft4iiw4FUXDyhp-8LhQjigGZee2Cdu669ctdoJvNC6Ja4jSj-HNNCqNWMeiT9bQ15ej5li7fNGOM1gDgAPwI_Xkwcl_NOuwn4MaWyvR6u3n0lHYEfV2UB-HEV9zsAAP__XdYC8Q">