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

Reply via email to