`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 ·