Clang静态分析器意外的NULL指针警告

问题描述 投票:1回答:1

我有以下代码:

int s[4096];
unsigned char o = 0;

int main(void) {
    int *n;
    return ((char *) (s + o)) == 0 ? *n : 0;
}

[当我在该代码上运行Clang静态分析器时,它警告我我取消引用n,因为(char *) (s + o)是一个空指针,但不是(我什至可以打印它并获得一个绝对不为零的地址) )。

我想念什么?

Clang Analyzer screenshot

[我注意到删除(char *)强制转换会使警告消失。

c clang static-analysis clang-static-analyzer
1个回答
0
投票

我正在使用Clang Static Analyzer版本8进行测试。版本10不再报告警告。

© www.soinside.com 2019 - 2024. All rights reserved.