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

    <tr>
        <th>Summary</th>
        <td>
            static analyzer false positive:  unary minus
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    This code

```
int something(void);
void out(int value);

void test() {

    int value;

    int error = something();

    if (error == 0)
        value = something();

    if (-error == 0)
        out(value);
}
```

triggers `test.c:14:9: warning: 1st function call argument is an uninitialized value [core.CallAndMessage]` with llvm 13.

The code might run into UB if `error==INT_MIN` because of the integer overflow in the unary minus. Still the message is misleading. Also, neither an assert() nor an assume-macro  with `error >= 0` after ` int error = something();` makes the bug report go away.

Scanner Output:
```
scan-build: Using '/pkg/llvm-13.0.1-0/bin/clang-13' for static analysis
scan-build: Emitting reports for this run to '/scratch/local/scan-build-2022-05-03-110530-10997-1'.

[LOCATION]: /home/buczek/scan_build_problem
'/pkg/llvm-13.0.1-0/bin/clang-13' '-cc1' '-triple' 'x86_64-unknown-linux-gnu' '-analyze' '-disable-free' '-main-file-name' 'test.c' '-analyzer-store=region' '-analyzer-opt-analyze-nested-blocks' '-analyzer-checker=core' '-analyzer-checker=apiModeling' '-analyzer-checker=unix' '-analyzer-checker=deadcode' '-analyzer-checker=security.insecureAPI.UncheckedReturn' '-analyzer-checker=security.insecureAPI.getpw' '-analyzer-checker=security.insecureAPI.gets' '-analyzer-checker=security.insecureAPI.mktemp' '-analyzer-checker=security.insecureAPI.mkstemp' '-analyzer-checker=security.insecureAPI.vfork' '-analyzer-checker=nullability.NullPassedToNonnull' '-analyzer-checker=nullability.NullReturnedFromNonnull' '-analyzer-output' 'plist' '-w' '-setup-static-analyzer' '-mrelocation-model' 'static' '-mframe-pointer=all' '-fmath-errno' '-fno-rounding-math' '-mconstructor-aliases' '-munwind-tables' '-target-cpu' 'x86-64' '-tune-cpu' 'generic' '-debugger-tuning=gdb' '-fcoverage-compilation-dir=/home/buczek/scan_build_problem' '-resource-dir' '/pkg/llvm-13.0.1-0/lib/clang/13.0.1' '-internal-isystem' '/pkg/llvm-13.0.1-0/lib/clang/13.0.1/include' '-internal-isystem' '/usr/local/include' '-internal-isystem' '/usr/lib64/gcc/x86_64-pc-linux-gnu/7.5.0/../../../../x86_64-pc-linux-gnu/include' '-internal-externc-isystem' '/include' '-internal-externc-isystem' '/usr/include' '-fdebug-compilation-dir=/home/buczek/scan_build_problem' '-ferror-limit' '19' '-fgnuc-version=4.2.1' '-analyzer-display-progress' '-analyzer-output=html' '-faddrsig' '-D__GCC_HAVE_DWARF2_CFI_ASM=1' '-o' '/scratch/local/scan-build-2022-05-03-110530-10997-1' '-x' 'c' 'test.c'
ANALYZE (Syntax): test.c test : 0.1 ms
ANALYZE (Path,  Inline_Regular): test.c test : 1.9 ms
test.c:18:9: warning: 1st function call argument is an uninitialized value [core.CallAndMessage]
        out(value);
        ^~~~~~~~~~
===-------------------------------------------------------------------------===
                                Analyzer timers
===-------------------------------------------------------------------------===
  Total Execution Time: 0.0018 seconds (0.0024 wall clock)

   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
   0.0014 ( 78.2%)   0.0000 (  0.0%)   0.0014 ( 74.5%)   0.0019 ( 80.2%)  Path exploration time
   0.0003 ( 18.9%)   0.0000 (  0.0%)   0.0003 ( 18.0%)   0.0003 ( 13.9%)  Path-sensitive report post-processing time
   0.0000 (  2.8%)   0.0001 (100.0%)   0.0001 (  7.5%)   0.0001 (  5.9%)  Syntax-based analysis time
   0.0017 (100.0%)   0.0001 (100.0%)   0.0018 (100.0%)   0.0024 (100.0%)  Total

1 warning generated.
scan-build: Analysis run complete.
scan-build: 1 bug found.
scan-build: Run 'scan-view /scratch/local/scan-build-2022-05-03-110530-10997-1' to examine bug reports.
```


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy9F9ly2zjya-QXFFg8dD7oQbGsWVdNnFTszNTuiwoCQQprEGABoI98_XSDIiWNJCfOHCyZBvtCo9HnxuSv84etdISbXAzi5SBe7N7jePcLn1J74kwl_FbqcpBOn4zMB-lskH1o8fhNTOMBhaRPTDXiEH9A5YVDMsCSweQITeDZc2dnccJaY8kgWx6pc7pVoC8I4HoOZIqRsifAJ2z2LoH0OxJbM5yaYLI8a9r27a0sS2EdAThaKOKDbJEM4QUSFuSZWY2awTJxnhSN5l4aTThTijBbNpUA48A9Mk0aoJReMiW_ibw73-gDN1ZE10C_0PlH4RwrxWC0hO3Is_RbotRTRZIsOlTqYSuCY5BKlltPbKPxDgz5-iGYYhwHS7SGuL17WH-8vUN5G8FZ4wQxBfEgAVgEHI2YJ2ELZZ4BEOCNZvYVROvGReTeSzgJgqtWNzxMJZ0SLIeDR2ShnBmk10QL0BakwUGZc8J2vqRNBwNb0Ipxa0h7sk5PuLGb9sZAR1Z4EIKr73oV0FTsUbig3aYpiRW1sZ6UhrBn9npksXvOtAbBnxpfgxtk56PJARXdNFLleKFfHWwHjjUZpKv6ETZe4V1QuIs4Sij412ojNby5YroEMFCSAtR1nnnJ4dBMvTrpzom-qaT3KL1V2QU-j_GOdwk32e7quGWeb3FnAx4VIJ0YmsZpSuMRjTOaJPEoi2kSz2YTmgDv0dnBx379dL14uP10h44F24OgLdgTT9Dwb-JxJ3gdBK9razZKVDvmdx0f_ijnSbeE4KmV2H29TMfr8ZA2-lGbZ00V-NcLLXXTEQd7feuoaS4dAzVoYUUPq5jUtJAA1azqoLuoPJZiqfMQV-A5VpQQkCdoU_vug2qQIHK6ASM_uhNKvhX8UWA0YaS-gWa1_AhBqYKTXqSCLPDyBjqHuAo5_zKJE7yx0r9GUoelWHy-jb7qliD_InxjT8_7HfZS-Pr5J5jeMtdZnurRi6p-P5f7GbYnCKvHN5h0oxTbSIV8d7D-jJkrfzB3RiPqHZyt1UW-sqa6xG3a3NOCayVdt6a95R2IqWmbQHrG3vutwDSA9YVW6Gg7REveUxUWYoPWBtN7cMu9KkXF_BbLpDY9SBtqTaMxmVNE93K40c7bhkMcUahZzIn-sqtGP0udU48R2kM91DvhKa-7kIaIp-Nhj260OECWAvLxXu1cQAaHaoRkoaAuy3zTK8mxRkHxodxUtVStDXIZStwP5bKdICucaSwXgbeFXcxuSm667Ab_W0QnJ9gWrodK94qe-XOyVlJz1exj_bLUxtmDIvBeNrnBW1iVHKy92qXhmh9m4NUkGkWoaBSdvs5zXFJCvOCCnyrzboZW-z-xFcFR_qofFKGxgPNAHd7BklmPhANyCg7nsHBky2GU7m--j2aoT7VirxQkl-BWp4lwF-7ZcuurfQSyPAe5fYFYrte_XF-v_7P47Wa9_H3xZZWur1e368X9R2DsNzV7o_x0SxAEdZWnC7u-drbFfnG3-PW__7vBZvr-VXv2EjqtBWnJwj-C3-C9pHInPJ9D-rgm5FaDp4j1F1E2itkLQpJo1gvZd9bTf76z_pGhoEMPRjeDyeVf2yKFPht-9O96eonHylx6FjuXI15W4LX_mlYPxjNFbl6g3oareYDtW_eI42RKoA4bnTv0DISkQ7hTuDuObVY_nPUnhA2-wtgQhMA6QO5DRtiBAgRJBumHFrGD0d9RbM-HrzsogbjopQeVhqgKmUyjdJCOcDZp4XEc4Lg-gnf0w2h0DJ8FOByql4OeT8RLrYwNOSncxNHmcRaYkmk0-6HN9_Tn4dleDm4OnYN2EAJPopuCauM8JicOjo-TxqlGu53TaHq8Q4LwJD7RKGnpJ38yRwcf7TVqkwfdQM-Q93PQqQbJ5K2dTuHgU2fh6fAEHlzz0MOSLqGQ0HgwaPijc5PZotMWBzGsMkp4cZYyCTNngb3TWfwXEIDdGQKfpHgmfyl7w0woXhgM5YejrovOjrHt-yqfZ_ksm7ErL70S88OxFJNFwZQT6CbBbVDjw8n_qrFqvvW-djgspyvsH2BobzYRGGXX4XSNDnjZ_wX3WKxhyseGcDUapcPkajtP8vFkWowmIh7xccLSaZ5ns6KYsGkqRMymV9BFC-XmkK0hNV_JORohHsVZPIsn6ThiwyTbiKyYwlyUpmw8GMYCpkAV4caRseWVnQcdwCgOkNhVuz0S-nlZaiE6-azxW2PnbYdwFbSdB1X_AF6lsy0">