`DIR-15-8-1`: move assignment self-assignment false positive
还没有人认领这个 Issue。
评估
调研方向
从 cpp/misra/src/rules/DIR-15-8-1/CopyAndMoveAssignmentsShallHandleSelfAssignment.ql 开始,针对提供的 main.cpp 示例运行它,以复现移动赋值运算符上的告警。检查该规则对通过 move-and-swap 进行自赋值的处理,然后验证这一有效模式不再被报告,同时预期的 DIR-15-8-1 违规仍会被检测到。
由索引模型根据 Issue 内容生成。
描述
Affected rules
DIR-15-8-1
Description
Using the "move-and-swap idiom" proposed in the directive's example as a solution to address potential issues with self-assignment leads to an alert.
Example
#include <utility>
class resource_manager {
public:
resource_manager() = default;
~resource_manager() = default;
resource_manager(resource_manager const&) = delete;
resource_manager(resource_manager&&) = default;
resource_manager& operator=(resource_manager const&) = delete;
resource_manager& operator=(resource_manager&& other) & noexcept {
resource_manager temp{std::move(other)};
std::swap(resource_, temp.resource_);
return *this;
}
private:
using resource = int;
resource resource_;
};
int main() {}
I am getting a
"DIR-15-8-1: User-provided copy assignment operators and move assignment operators shall handle self-assignment","User-provided copy assignment operators and move assignment operators shall handle self-assignment.","error","User defined copy or user defined move does not handle self-assignment correctly.","/main.cpp","10","23","10","31"
when analyzing with cpp/misra/src/rules/DIR-15-8-1/CopyAndMoveAssignmentsShallHandleSelfAssignment.ql.
- 主要语言
- CodeQL
- 星标
- 227
- 派生
- 82
- 平均合并
- 6 天 7 小时
- 30 天内合并 PR
- 9
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
github/codeql-coding-standards 的其他 Issue
-
false positive/false negative Stardard-MISRA-C++
难度 2/5 1-3 小时 新手友好度 72/100
github/codeql-coding-standards#1172 ·
-
Difficulty-Low false positive/false negative false-negative Impact-Low Standard-MISRA-C
难度 2/5 1-3 小时 新手友好度 68/100
-
Difficulty-Medium false positive/false negative false-positive Impact-Medium Standard-CERT-C
难度 4/5 3-5 天 新手友好度 48/100
github/codeql-coding-standards#1200 ·
-
`RULE-0-0-1`: "unreachable statement" false positives due to over-pruning of the control-flow graph 未关闭false positive/false negative
难度 4/5 3-5 天 新手友好度 48/100
github/codeql-coding-standards#1190 ·
-
false positive/false negative
难度 3/5 1-2 天 新手友好度 65/100
github/codeql-coding-standards#1175 ·
查看 github/codeql-coding-standards 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 88/100
use-agent-os/agent-os#3314 ·
-
agentic-workflows
难度 1/5 1 小时以内 新手友好度 85/100
githubnext/rig#534 ·
-
documentation low-priority templates
难度 2/5 1-3 小时 新手友好度 85/100
jesseray718/openroot#87 ·
-
factory-active factory-automatic task-bug-reproduction-cannot-reproduce task-identify-harness-labels-done task-identify-issue-type-done
难度 2/5 1-3 小时 新手友好度 84/100
-
enhancement
难度 2/5 1-3 小时 新手友好度 74/100
ReedClanton/NixOS#41 ·