| Issue |
203686
|
| Summary |
[clang-tidy] Check bugprone-unchecked-optional-access triggers a false-positive related to nested loops
|
| Labels |
|
| Assignees |
|
| Reporter |
pkl97
|
This code triggers a false-positive result from clang-tidy check bugprone-unchecked-optional-access (see https://godbolt.org/z/joe53TMs4):
```c++
#include <list>
#include <optional>
struct Dependency
{
std::optional<int> m_valuePart;
};
void process(const std::list<Dependency>& dependencies, const std::list<int>& values)
{
for (const Dependency& dependency : dependencies) // outer loop
{
for (int val : values) // inner loop — unrelated to dependency
{
if (dependency.m_valuePart.has_value()) // std::optional check
{
int vp = dependency.m_valuePart.value(); // <-- false positive
}
}
}
}
```
The issue occurs on the main branch (upcoming clang 23) but is present at least since clang 21.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs