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

    <tr>
        <th>Summary</th>
        <td>
            [analyzer] False positive core.CallAndMessage on unreachable code guarded by constant global condition
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:static analyzer,
            false-positive
      </td>
    </tr>

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

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

<pre>
    clang version 24.0.0git 0c8f1121a2bb2095227dab641e66e5ea4c238e87
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /root/tmptest/llvm-project/build/bin
Build config: +assertions

https://godbolt.org/z/Ghqoa6ros

    #include <stdio.h>
 
    static int a = 1;
    static int b = 0;
    
    void func1() {
 char *c;
        if (a) {
            printf("%s\n", c);
 }
    }
    
    void func2() {
        char *d;
        if (b) {
 printf("%s\n", d); // false positive
        }
    }
    
 int main() {
        func1();
        func2();
        return 0;
 }

Both functions produce warnings:

    test.c:9:9: warning: 2nd function call argument is an uninitialized value [core.CallAndMessage]
 9 |         printf("%s\n", c);
          |         ^~~~~~~~~~~~~~~~~
 test.c:16:9: warning: 2nd function call argument is an uninitialized value [core.CallAndMessage]
       16 |         printf("%s\n", d);
          | ^~~~~~~~~~~~~~~~~
    2 warnings generated.

The warning in func2 is a false positive.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8VUGT4jYT_TXi0jUuu41tfPDBwPLVd8ht76m21baVCIlIMjszh_z2lAwDzOxMKrlEVZQl-qn9uvvxIO_VaJgbUWxFsV_RHCbrmqDIPCszTrzqrHxpek1mhDM7r6wBXCdpko4qQNpvhizDjLDrMK0LxEpSV64zLksumNY95hveVCJtv5MbOYi8hedN-Wu5fprN78b-ME9amfn5aTRzBE2OScLRStYRerJePYu0_b_xgbRmuVcufi_w4KwNAg_heArs407r8_Hp5Oxv3MdjNyst41MZkbbbeILemkGNlwRb8p5dUNZ4kbYibacQTl7krcCDwMNoZWd1SKwbBR5eBR7-N_1hqXT2CgcAEJgr0-tZMoh854NUNplE_i2GrxAfKKgelAlAIPI9ZCLf_hzrllh6j10fZ6skDLPpM4EbgTWIakH0EzkQ2Pb3G3GpAQRu6AH4sE5OmTAseVBg4UWxM8t2B73A-ppJVPs3CvfdBzL4nsx1vXGSn3HqHvB_Q0ReiMBlCDCQ9ryoIKgzPyT9imXs5ZGU-ZTgQx_fU3yo6X3AcZiduc3l8q4oJxum5daiHzg5K-ee4Qc5o8y4qOgmkijPpBd5W18_b7C4RSNveaAnrYHcOB_ZBFAeyMBslFFBkVavLOFMemYQxba3jpMdad0a-Qt7TyOLYmlELHr3L2cO97ber4ri258fVsTeysnK_6Sey8rKf1qW_KKsL8oBALzNDUY27CiwTC7z-z7dhgrKXHSyFPJBmclKNrms85pW3GTVpsrzIsuy1dRgVWVVWtYpE6Ic6pIxr9c95cj1gFm9Ug2mWKYbzLKq2ORZMqwHTIv1UGd1hwVJsU75SEon0eCiH62U9zM3mFV1ma80daz94t-Ii0-LvL06CxnSL6_sLq0RiAvrp9vvCTF6vmsW6-zm0Yt1qpUP_v6uoIJe_h1uuYo9HN4VD58MD2wctWPqJ-p0hEiGcSYnWUL3Ep3YBzIBRm070vEsVRTNana6-WDFKkxzl_T2eHX5n81-6YgXeLg25dzgXwEAAP___JkE8g">