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

    <tr>
        <th>Summary</th>
        <td>
            leverage DCE for compiler/static analysis warnings
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          firewave
      </td>
    </tr>
</table>

<pre>
    Based on #62560 I was wondering if the compiler could leverage the fact that dead code was eliminated to issue compiler or static analysis warnings as it might possibly indicate redundant or even faulty code.

I am not sure if at the stage of DCE there is any information about the actual code in question yet as that is obviously performed on the IR.

```cpp
int multiCompare(const char *haystack)
{
    for (;;) {
        if (*haystack == ' ' || *haystack == '\0') {
            break;
        }
        else {
            do {
                ++haystack;

 if (*haystack == ' ' || *haystack == '\0') {
                    return -1;
                }
                if (*haystack == '|') {
 break;
                }
            } while (true);

            ++haystack;
        }
    }

 return -1;
}
```

Looking at the code above (which is as of now not treated as dead in Clang) it has a constant result and performs processing of the input pointer without modifying any data at all. Both of those are indicators something might not be right in the code.

CLion reports the constant result via the `Constant Function Result` inspection but that might only indicate that one of the returns *could* be faulty but not the bigger picture that this code does essentially nothing at all.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VcGS4jgM_RpzUQ0VDAQ45NDAUjVVc5o_UGKReMexs5YCxd9v2YHuZobZ3cum0h0iy09PcvSEzLb1RJVa79X6OMNRuhCrs410xQvN6mBu1R6ZDAQPSi9LvS4L-ApXZLgGbyha34I9g3QETegH6yhCE0ZnwNGFIraU187YCEiHAobQQBMMZRBytrcehQxIAMs8fsIJEVhQbAPo0d3YMlwxeutbBmSwAr1tO4EhMNva3cB6YxsUgkhm9Aa9JAy6kIczjk5uOfBcFUdVvE3_vwL24IMAj5FSJiiZMEuiHs5wPPyRDGmRAX0Kcg6xR7HBA9ZhnPyxkRHdlJj18NdInD1uJIlrTt0yhPpiw8juBgPFhDOVNiF8_f5ETJXFdDfDMFmsF-hHJ_YQ-gEjKb1tgmeBpsMISr91eGPB5ofSuzvGZj_9AAA4h-S0Vct9uvUOnlbTZc_Z4QMI1PKolkdQejP9bQ5qc4DXHmp9KNLjFXK66kj4I4V-WlGb47OBHNNrABNe2zOM3iu9fy_AI8rd-f9N7HFFkjF6-LL4JcnfJvtfKp-4_Rz9dS3_MYzaHOHaWUcpksSR0lfyU53-vaAvQ7y_3E2_FuLD4_FVf97wLYQfSUfurZd7COtwyVSvnW263Huc2tGHa25XiZRVA3lSFOvh4NC3qU5WoEMGhNweSQUi8egE0JtH3zEMMTTEnAKHScCsH8akJtYLRbha6VJ398HY8y3z8zcwKJiIonNz2Afpps2BCTBpxKRAITJw6Em6tG9SqcS6Joj5xfr3VJ-6_vAtiUakIUThu8tzDheL2a7K4vBYOo2-yWrzPfuosgDreaDJWI936Z14BP9ZKfNC8PSowXR2nFohy7jSb4n1XT4TVK5-R1DbtqUIg20kSWcGks7ydH4mEAMxkxeLzt3Stu5-yKl2M1MtzW65wxlVi3JXlKtNWa5nXWWKxWKxXm8W63pFWyzW9dKYFTVFudWERs9spQu9LDZ6tyj1oljPG7M051253ertsijWW7UqqEfr5s5d-nmI7SzPlapc6cVu5rAmx3niae3pOg0dpXUagLFKe77UY8tqVTjLwh8oYsVR9T7W0mBImvoYV0qffjetZmN0VScysFq-KX1S-tRa6cZ63oRe6VMKcX98GWL4kxpR-pSJsdKnTPzvAAAA__9DNVLs">