问题标签 [clang-tidy]

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 投票
0 回答
29 浏览

c++ - 覆盖移动赋值运算符

在子类中覆盖移动赋值运算符并在调用基类的移动赋值运算符后移动子类的字段时,我收到了来自 clang-tidy 的警告。

例子:

我得到的警告是:

覆盖操作员的正确方法是什么?

0 投票
1 回答
214 浏览

c - 是否有 C 的静态代码检查器可以标记缺少互斥锁解锁?

在下面的代码中,两个线程正在使用相同的函数,并且每个线程都应该在开始之前获取锁。所以第一个线程获得锁,完成工作,然后离开,但没有释放锁,因为解锁命令被故意注释掉了。第二个线程永远不会获得锁,因此永远不会完成这项工作。

我创建了这个简单的示例只是为了测试我正在使用的静态代码检查器是否会标记这种情况(缺少解锁),但事实并非如此。我正在使用具有 clang 静态分析器和 clang-tidy 检查器的CodeChecker 。你知道任何会标记这个的静态代码检查器吗?我认为 Coverity 可能,但我没有证明它的许可证。

0 投票
0 回答
108 浏览

clang-tidy - 如何使用带有 -Wdocumentation 标志的 clang-tidy

我想同时使用我的自定义检查和 clang-diagnostics ( -Wdocumentation),但我根本不想拥有compile_commands.json

我试过这个:

但它不起作用。

任何帮助将不胜感激

0 投票
1 回答
2593 浏览

c++ - 如何将 -fix 选项添加到 .clang-tidy 文件?

我有一个这样的配置文件,想添加-fix标志以应用可能的修复,但我无法弄清楚它的确切位置。是否可以在文件中添加-fix-fix-errors标记.clang-tidy

0 投票
0 回答
1488 浏览

c++ - 铿锵有力的头卫风格警告

我想在带有 CMake 的 Windows 10 上将 clang-tidy (LLVM v7.0.0) 与llvm-header-guard一起用于以下头文件

其中ROOT为 C:\User\Zlatan\Project\Guard,头文件 Bar.h 位于ROOT \Foo\Bar\src\include\Bar\Bar.h

不幸的是,这会产生以下警告

警告:标头保护不遵循首选样式 [llvm-header-guard]

我读了什么是正确的 LLVM 标头保护样式?但我没有找到正确的风格

并再次收到

警告:标头保护不遵循首选样式 [llvm-header-guard]

我的用例的正确样式是什么?我是否必须在 CMake 中配置一些东西(已经使用 CMAKE_EXPORT_COMPILE_COMMANDS=ON)?

更新

跑步

cd C:/Users/Zlatan/Project/Guard/build/Release

clang-tidy -checks='llvm-header-guard' -header-filter=.* -p=. ../../Foo/Bar/src/Bar.cpp

正如 cmd 中所建议的那样,生成以下输出

最好的问候兹拉坦

0 投票
2 回答
1512 浏览

c++ - “移动后使用[bugprone-use-after-move]”警告在这里是一个真正的问题吗?

我正在调整在 cppcon 2016 中谈到的延迟 ptr Herb Sutter 的想法,以便能够以更安全的方式管理由 id 表示的外部资源。

因此,我创建了一个不可复制且只能移动的类,该类持有id该资源应表示的内容。如果对象被移动到另一个对象,就像应该成为unique_ptr的那样。id0

据我了解,如果被调用的函数没有任何先决条件,即使在被移动之后,您仍然应该被允许使用该对象,所以据我了解,这应该是有效的:

但是clang-tidy给我这个警告:

警告:“src”在移动后使用 [bugprone-use-after-move]

对于src.get()之后dst = std::move(src)(上面标记)。

所以我的问题是:

  1. src.get()之后我可以打电话吗std::move(src)
  2. 我可以src.get()假设0std::move.
  3. 如果1.2. 有效,那么有没有办法更改代码,以便 clan-tidy 知道这是有效的。如果没有,是否有办法更改有效的代码?

这是该类的实现:

0 投票
1 回答
3464 浏览

android - android studio 3.3 clang-tidy

昨天,Google 将 Android Studio 更新到了 3.3 版,并且可以使用静态分析器来分析支持 C++ 的库。那么,具体如何使用呢?我包括在:

Preferences->Editor->Inspections->General->Clang-tidy

(使用 IDE 设置)但仅此而已。如果您尝试通过 android studio 的终端 - 那么您需要手动编写所有依赖项,这显然是不正确的。我的问题是 - 如何在 Android Studio 3.3 版中使用 cland-tidy?

我将不胜感激任何帮助和支持。

0 投票
2 回答
1942 浏览

c++ - 在哪里可以找到 Clang-tidy“可读性标识符命名”检查器的可用选项列表?

用例

我想为readability-identifier-naming在我的代码库上运行的 clang-tidy 配置检查器。

背景

clang-tidy 中的检查器可以通过 CheckOptions 提供,例如:

也可以在 .clang-tidy 文件中指定选项。

问题

我在哪里可以找到可用选项列表(readability-identifier-naming在这种情况下进行检查),例如ClassCase上面的代码行?

官方文档不是很具体,只是说“可以使用许多配置选项,以便能够为不同类型的标识符创建不同的规则。”

谷歌搜索的结果

我在 github 上找到了这个页面,它更详细地解释了它(但仍然没有解决问题)。

我还在Microsoft 存储库的文件中找到了一个巨大的列表,但我不知道他们是从哪里得到的。

进一步的调查

我想,如果需要,clang-tidy 可能会丢弃所有可能的选项。如果你跑

(或者只指定readability-identifier-naming检查器。没关系,输出是一样的)

转储文件仅包含一个关于可读性标识符命名的选项,即:

我也试图通过clang-tidy源代码,但没有成功。

毕竟

如果有人能指出一个包含所有可用 CheckOptions 列表的地方(如果存在),我将不胜感激。

0 投票
0 回答
444 浏览

c++ - 将 llvm-header-guard 与 run-clang-tidy.py 一起使用

我检查了以下链接

但我无法将 llvm-header-guard 与 run-clang-tidy.py 结合使用来解决问题

我有以下CMakeLists.txt文件

并使用以下批处理文件(例如 scirpt.bat)

这将创建以下输出

有人知道如何正确运行 clang-tidy python 脚本吗?

谢谢您的帮助!

0 投票
2 回答
951 浏览

c++ - Android Studio 3.3 (NDK) 上的错误警告

在最近的 3.3 更新中,Android Studio似乎有一个非常烦人的错误,会在 C/C++ 代码中给出错误警告。

在此处输入图像描述

正如您在上图中所见,IDE 会在每个包含立即数的位操作时发出警告信号,即使它是正数也是如此。

摆脱这种烦恼的唯一方法是uint32_t将更烦人的直接值“类型转换”为。

是否有任何选项可以抑制这种警告Android Studio?我在我的代码中进行了大量的位操作,现在这让我很恼火。

或者它可能是clang的错,假设任何立即值默认是有符号的。是否有编译器选项可以更改它?