| Issue |
168597
|
| Summary |
[analyzer] core.UndefinedBinaryOperatorResult false positive on C arrays cast
|
| Labels |
false-positive
|
| Assignees |
|
| Reporter |
hedrok
|
```c
#include <stdio.h>
int main()
{
unsigned int ints[2] = {0xaabbccdd, 0xff};
unsigned char* bytes = (unsigned char*)ints;
printf("0x%x\n", bytes[1] | 1);
}
```
Calling
```bash
scan-build clang false-positive.c
```
Gives
```
scan-build: Using '/usr/lib/llvm-22/bin/clang' for static analysis
false-positive.c:7:31: warning: The left operand of '|' is a garbage value [core.UndefinedBinaryOperatorResult]
7 | printf("0x%x\n", bytes[1] | 1);
| ~~~~~~~~ ^
1 warning generated.
scan-build: Analysis run complete.
scan-build: 1 bug found.
scan-build: Run 'scan-view /tmp/scan-build-2025-11-18-191927-81-1' to examine bug reports.
```
Checked for versions:
```
Debian clang version 22.0.0 (++20251015112211+4ad625b15bc1-1~exp1~20251015112229.1767)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-22/bin
```
And
```
Debian clang version 19.1.7 (++20250114103228+cd708029e0b2-1~exp1~20250114103334.78)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-19/bin
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs