问题标签 [clang-static-analyzer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8888 浏览

cocoa - “潜在的空值取消引用”上的 Clang 错误。

我在以下类型的代码中不断收到 Clang 错误,我无法弄清楚为什么它们是错误的,或者如何解决它们以使 Clang 满意:

撇开示例的完全人为的性质(Clang 确实反对,因此它足够说明性),Clang 拒绝错误分配行,并提出以下反对意见:

潜在的 null 取消引用。根据“创建和返回NSError对象”中的编码标准,参数“错误”可能为空。

我喜欢原始的 Clang 报告。我已经阅读了引用的文件,但我看不出有什么方法可以做预期的事情;我检查了一些开源 Cocoa 库,这似乎是一个常见的习惯用法。有任何想法吗?

0 投票
1 回答
441 浏览

iphone - 如何让这个 Apple Script for Clang Static Analyzer 与 Xcode 一起工作?

这是一个很多人说它很好的脚本:

http://allancraig.net/blog/?p=381

但我无法让它工作。我必须使用 Xcode 脚本编辑器执行哪些步骤才能运行该脚本?

我已将其粘贴到 Mac OSx 的脚本编辑器应用程序“Script Editor.app”中,并将其保存为clang.scpt

然后,我打开 Xcode 并打开脚本编辑器,使用以下设置创建了一个新脚本:

输入 = 选择 (??) 目录 = 选择 (??)

脚本代码:

一定要这样吗??我的脚本是我的应用程序目录,在一个名为“Clang 静态分析器”的子目录中。我刚刚在终端上删除了 clang.scpt 以获取路径。

输出 = 选择后插入 (??)

错误 = 与脚本输出合并 (??)

然后,当我执行该脚本时,会发生这种情况:

/var/folders/QD/QDPLhhOJyvoyecmZQk+++TI/-Tmp-/965ABD-3FF7-46A3-8131-AA9CD1553D26-92280-0401D25AC142AE31:第2行:/Applications/Clang Static Analyzer/clang.scpt:权限被拒绝

任何想法?

0 投票
1 回答
1301 浏览

xcode - 在 iPhone-SDK 3.1 下的 Xcode 3.2 中,如何避免来自 CLANG 分析器的“死存储”错误?

我刚刚升级到 Xcode 3.2 并正在使用构建和分析功能来检查旧代码是否存在错误。

在做一些我认为无害的事情时,我收到了这个错误:

“死存储:在初始化期间存储到‘newBook’的值永远不会在 SpellTest.m 中读取”

我初始化这个对象是错误的还是误报?

0 投票
3 回答
1436 浏览

xcode - 使用 Clang 开始是否明智?

我刚开始使用 xcode 并学习 Objective-C 和 Cocoa,将 Xcode 3.2 中的编译器交换为 Clang 以增强错误检查和静态分析器是否会有所帮助。我只是好奇提供的额外内容是否会有所帮助,或者我的学习是否会更好地坚持默认设置?

非常感谢

加里

0 投票
4 回答
7149 浏览

objective-c - Clang:什么是“方法返回具有 +0 保留计数的 Objective-C 对象”试图告诉我?

在 XCode 3.2 和Nikita Zhuk 的分析工具中使用 clang 运行静态分析我经常遇到这对警告:

方法返回一个具有 +0 保留计数的 Objective-C 对象(非拥有引用)

调用者此时不拥有对象引用计数的不正确递减

可能引发此警告的代码示例:

我假设以这种方式创建的按钮是自动释放的,就像使用便利工厂方法创建的任何其他 NSObject 一样。所以我返回它,调用者可以决定是否保留它。那有什么问题?

我有义务在返回之前保留并自动释放对象吗?最重要的是,这个警告所警告的东西是否会成为可怕的发布相关崩溃的原因?

我现在意识到这似乎只发生在 UIButtons 上。是因为它是一个类集群吗?

编辑:下面的片段显示了clang发出这些警告的最小情况(警告以粗体显示)。buttonWithType:这两个警告都在创建对象(消息)的语句上标记。

1 方法返回一个具有 +0 保留计数的 Objective-C 对象(非拥有引用)

2 调用者此时不拥有对象的引用计数的错误递减

0 投票
1 回答
4512 浏览

visual-studio-2008 - Windows 上的 Clang 静态分析器

有人在 Windows 上成功运行 clang 静态分析器吗?

我已经成功构建了 llvm 和 clang(使用 VS 2008)。运行 scan-build 会导致以下错误:

一些研究表明,Windows 平台不支持getpwuid 。

0 投票
2 回答
839 浏览

objective-c - 解释 clang 静态分析器消息

为什么 Clang 静态分析器 (CSA) 会输出以下消息:

尽管在封闭表达式中使用了存储到“self”的值,但实际上从未从“self”中读取该值

对于以下方法:

代码按预期工作,所以我想知道从技术角度来看代码是否不正确,这是 CSA 中的一个错误,或者我只是遗漏了一些非常明显的东西。

仅供参考,我使用这种模式是因为我不希望创建此类实例的类能够指定表格样式。

0 投票
1 回答
362 浏览

objective-c - Clang 静态分析器对 autoreleased 发出警告

结果 = [结果 stringByReplacingOccurrencesOfString:@"ç" withString:@"c"];

结果 = [结果 stringByReplacingOccurrencesOfString:@"Ç" withString:@"c"];

clang 静态分析器发出警告“方法返回具有 +0 保留计数(非拥有引用)的 Objective-C 对象”

返回[结果自动释放];

“ 对象过度自动释放:对象已发送 -autorelease 但对象的保留计数为零(本地可见)”

你对这个警告有任何想法吗?

0 投票
1 回答
236 浏览

xcode - Clang-LLVM 是否适用于 iPhone?

我目前正在使用 Xcode 3.2.1 来学习 iPhone SDK,并且想知道是否可以使用 Clang-LLVM 和静态分析器来帮助调试我的代码。目前我正在使用默认模板,但是在为模拟器编译时,在 project>settings 中交换编译器会给我带来错误。这可能吗?

加里

0 投票
1 回答
186 浏览

iphone - 为什么构建和分析命令没有发现明显的内存管理错误?

出于某种原因,我的 Xcode 中的 Clang 静态分析器不会抱怨任何事情。我在尝试它时犯了很大的内存管理错误(分配并且没有释放),但它永远不会找到它们并且不会抱怨它们。即使在清理所有目标并再次构建和分析之后。

我正在为 Simulator 3.1 构建

我必须专门设置吗?一个特殊的编译器设置?如何?