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

    <tr>
        <th>Summary</th>
        <td>
            Is it possible for Clang to report format truncation warning.
        </td>
    </tr>

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

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

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

<pre>
    Clang doesn't report truncation warnings, found with GCC

Sample program:
```
#include <stdio.h>

int main() {
    char dst[2];
    char src[2] = "a";
    snprintf (dst, sizeof (dst), "%s!!", src);
    return 0;
}
```

Compilation with Clang:
No warnings reported
```
# clang -c -Wall prog.c
#
```

Compilation with GCC:
```
# gcc -c -Wall prog.c
prog.c: In function main:
prog.c:6:37: warning: !! directive output may be truncated writing 2 bytes into a region of size between 1 and 2 [-Wformat-truncation=]
    6 |     snprintf (dst, sizeof (dst), "%s!!", src);
      |                                     ^~
prog.c:6:5: note: snprintf output between 3 and 4 bytes into a destination of size 2
    6 | snprintf (dst, sizeof (dst), "%s!!", src);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

Compiler Versions:
```
clang version 16.0.6 
gcc (GCC) 13.2.1
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VE-PqzYQ_zTDZRRkxiFsDhx2k5fqXXqp1Hc2eCCuwEa22dX20M9eGUj2vdWuXiu1CIEzMxn794dRIZjeMtdQPkF5ztQcr87X4xyubN1r1jj9Wp8GZXvUjoMFqiJ6npyPGP1sWxWNs_iivDW2D0An7NxsNb6YeMVfTicQZxCP6_M3NU4D4-Rd79UIcgvDQWz3-pOkse0wa0aQpxC1cfkV5JfvOxkbcVTGAj0AHRGqpzWOiNhelUcdIpRPBOUZ5Ptc8O2WQ5BnBCIFRD_UBTt5Y2OHQA-pFZ0wmD_ZvQWOKZb-RmUAKpabljrfpuz33TzH2VsU9yBU54-hL8-TGyczbMQmGhf-73T96u50b0qw_oxIbBfpdi3uvqlhWKjP23v63xwiafm5Yti37cfbbGv5iF8tdrNtl5aLeLd295IDyEdZpdoNYVqu7KI2nttonhndHKc56f-KDd9cyBpfvInG9kjYvEYOaGx0qNBzn3Z03SIhNhxfmC0WqKxGQiifdt8650cVd2-OBnlO3rlLeECoTvjfWwPvfX92Qfnlrw_oKhNF1kVO7_vZNopuWOWCdf8jL5pDNHZV-EYOvUf8f6BNSP7h9VODssff2QfjbPjMnesn8LxWYXHIRX7ANZVMC_SQrE1HLGROefGuR6ZrqY_yqDKui0ocS3mgvcyutSDBTSWULrsH6gpRdlwWRy1UxaWu-JCZmgTthRR7URViL3N97JToCqG0qNp9ybAXPCoz5MPwPObO95kJYeb6QVbVIRtUw0NY5jLRgiHxWp4zX6f6XTP3AfZiMCGGtw7RxIHrrwFNxMmFYJqBsXN-nSEY3W14r47_YIbn2eyH-hrjtDBKF6BLb-J1bvLWjUCXtNf22k3e_cFtBLosRw9Al-X0fwcAAP__RODW8Q">