【发布时间】:2014-09-14 06:15:23
【问题描述】:
我发现 Clang 的文档很差。我还没有找到很多可用的 Clang 警告标志列表。我对 C/C++ 警告特别感兴趣,但这是一个普遍的问题。
GCC 在此处列出并描述了警告,还列出了 -Wall 和 -Wextra 中包含的内容: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
Clang 的 -Wall 和 -Wextra 包含哪些警告标志?
我可以搜索每个版本的 Clang 发行说明,看看每次引入了哪些新的警告标志(例如 http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNotes.html),但是是否有更简单的 Clang 警告列表和/或描述? 这将非常有用。我需要知道 -Wall 中包含哪些内容以及不包含哪些内容,因此我可以考虑打开那些不包含的内容。
(我知道 Clang 存在 -Weverything - 我是否必须求助于使用它并明确禁用我不喜欢的那些?更多文档会使这更加理想。)
【问题讨论】:
-
事实证明,依赖 Clang 的发行说明并不是很有用 - 来自llvm.org/releases/3.0/docs/ClangReleaseNotes.html:“添加了许多新警告来捕获常见的、容易出错的代码模式。”跨度>
-
有一些有趣的讨论here,虽然有点老了。
-
谢谢 - 这很有趣,虽然已经有几年的历史了,这在 Clang 开发时间中已经很多了。为了 GCC 兼容性,接受了一些警告标志,但没有实现(尽管我发现一些 GCC 标志不被接受很有趣!)。一些有趣的引述:“相反,我会鼓励每个人不要启用超出 -Wextra 的标志。” “[警告] 最终都应该迁移到适当的大桶标志 [-Wall 或 -Wextra] 中,或者从 Clang 中删除。”这就是当时的设计目标。 GCC 肯定不会尝试将所有有用的标志都集中到这样的存储桶中。
标签: c++ c clang compiler-warnings