| Issue |
71320
|
| Summary |
-Wformat-truncation warning size does not agree with the return value from snprintf
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
andrew-aitchison
|
clang++-18 (version 18.0.0 (++20231104083419+83888a5404d4-1~exp1~20231104083522.106)
reports
```
format-trunc.cpp:9:12: warning: 'snprintf' will always be truncated; specified size is 16, but format string expands to at least 17 [-Wformat-truncation]
9 | int ret = snprintf(szString,
| ^
1 warning generated.
```
for the following code, but when run it prints:
```
snprintf(*, 16, fmt, ...) returns 15
```
which suggests that at least for this value the format string does fit in the given space.
```
#include <stdio.h>
int main(int argc, char*argv[])
{
const double d = .123456789012345;
char szString[15 + 1];
int ret = snprintf(szString,
sizeof(szString),
"%#+015.10f", d);
printf("snprintf(*, %zu, fmt, ...) returns %d\n",
sizeof(szString),
ret);
return 0;
}
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs