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

    <tr>
        <th>Summary</th>
        <td>
            Crash under -Wunsafe-buffer-usage-in-libc-call when compiling snprintf()
        </td>
    </tr>

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

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

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

<pre>
    Given a program foo.cc:
```
#include <stdio.h>

constexpr size_t kSize = 10;

int main(int argc, char** argv) {
  char buf[kSize];
  snprintf(buf, kSize, "%c", 0x41);
  return 0;
}
```
compiling with -Wunsafe-buffer-usage-in-libc-call gives

```
$ third_party/llvm-build/Release+Asserts/bin/clang++ -c -emit-llvm -Xclang -disable-llvm-passes -Wunsafe-buffer-usage-in-libc-call  ~/foo.cc
clang++: [redacted]/third_party/llvm/clang/include/clang/AST/APValue.h:468: APSInt &clang::APValue::getInt(): Assertion `isInt() && "Invalid accessor"' failed.
0.      Program arguments: third_party/llvm-build/Release+Asserts/bin/clang++ -c -emit-llvm -Xclang -disable-llvm-passes -Wunsafe-buffer-usage-in-libc-call [redacted]foo.cc
1.      <eof> parser at end of file
#0 0x0000559fa1931108 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (third_party/llvm-build/Release+Asserts/bin/clang+++0x4fc9108)
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 20.0.0git (https://chromium.googlesource.com/external/github.com/llvm/llvm-project 8cb44859cc31929521c09fc6a8add66d53db44de)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: [redacted]/third_party/llvm-build/Release+Asserts/bin
Build config: +assertions
clang++: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg: /tmp/foo-82f592.cpp
clang++: note: diagnostic msg: /tmp/foo-82f592.sh
clang++: note: diagnostic msg: 

********************
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMVk1v2zgQ_TX0ZSCDoj4sHXyQnbgNEGyCxrvdW0CTI5lbihRIynF72N--oOQ06fbQLHJZQEhocjicee_NkNx71RnENSk2pLha8DEcrVsHjwN-Wxys_Lr-oE5ogMPgbOd4D621SyFI1hDakJJePtoQlikj9CgRSLb1QSq7PJLsOi7RRljjA54HB159w8cAXx7Ut2h5BSkl2Wa2UiZAz5UhrIpD7jpB2BbEkTvCGsKaOHUirAayiltgWoLD2JJiM3kkxdXsDcCbwSkTWsKqaMC285lxQBgjrBDTvy3Qc54SVj_vcxhGZ-A5qtXVvxIVth-UVqaDJxWOkHwejectJoexbdElo-cdJsokWh1EIrjW0KkT-jnDHxHLIRyVk48Dd-ErYTutT31yGJWWhO0-oUbukbBN4z264AnbHSI2O6G56QjbELaBRECCvQpJ3AvJn9MaJFJ5ftA4zSYD9x79WyKFvwnbXRimzatzSNYAKTYOJRcBZYSZ7X4O_iW43UUMr2aah338e_8H1yNGbTR5WUXHzf3DjQlAWDmbZg3Jmovd_KPDcGMCYdXEUwMzIsoaICVV_vta9EFYGQm-MSeulQQuBHpv3UT2ClquNMoloQ1dElrfX1TNXTf2aIKP3v9npPyI-3d20hg_ybZoW5Jdw8CdRwc8ABoJtoVWaZzrkgI9U0ppUdQtT-ssTWkFE10TuP6rnwf3sV4eAhdf9o4LJKx6MXL86dH64JD3E8ZbUBH0iHj1XrwI29Bz3oo6pRPBPykPnbMuDmYgW2dNiFkK2_fcyAupcz3iWQUQViKkWR6jGz1CcoJgwSOCMicreJTOq5PghM5HNTG6pEvaqSjG6hjCMCHDdjHeo7O9GvtlZ22n0dvRCVwKGzWP54DOcE3YrlPhOB4u85eSmPl29i8UASpxyPOqqIXI0prVBUsFrVtR8opLWZayyOQhz2PhxPD23HUYYurnqnws82Q0X4x9ivIw4znpzBiNjg65hN5K1NF0sF6dCW1ujA9ca5RXyr2xgH9JHG020QKENa3qJq9sw5_L0f_MnbEhFjFIxTtjfVACej9vjOJ8xzc11Pvb6-bhGpr9vtl-hP3Ha9jd3d7efb757QPsbm6vH2B_N01vfv8An67v7z7t57vr3uHgbOwNKGFmk7DKR0lHSXHvrVA8oAQ3GvDCqSF8N3AIOsoIJfAw-3t72mwX-mHus0nF2qJmSzEM73Xhj_8V-_fD_3yZLeQ6k3VW8wWu01WW0zwrU7Y4rqlgWctaXNWHLGsPMqs5LUTNy5KJos7ShVozyvKUpYyxvCzYclVLWWC6KspUrtqUk5xiz5VeRnUuresWyvsR12lar6pyofkBtZ-eL4wZfIJpNfb64mrh1hdJd57kVCsf_IuboILG9dZxf4TRSHRvacVPRzTw8gB49cQgrF6MTq9_bBq_6gbxnowBx-q6ZHRas38CAAD__33w9Cw">