<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/151287>151287</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] False positive bugprone-unchecked-optional-access with call to non-const member
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          chrchr-github
      </td>
    </tr>
</table>

<pre>
    ~~~c++
#include <optional>

struct S {    
    int f();
    void g() { ++i; }
 std::optional<int> o;
    int i{};
};

int S::f() {
    if (!o.has_value())
        return 0;
    g();
    return *o;
}
~~~
~~~
<source>:14:13: warning: unchecked access to optional value [bugprone-unchecked-optional-access]
   14 |     return *o;
      | ^
1 warning generated.
~~~
https://godbolt.org/z/66EYve5Tj
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyEU8GO6ygQ_Jr2peUIgx3igw9OMv6B2cueVhhjm1kCEeCMZg_59hVOMn4aPelZFqCmuquqARGCnqxSDVRHqM6ZWOLsfCNnL2efTzrOS5_1bvhq7ve7BHpMP2mBMm2lWQaFwE7uGrWzwgB7S3ukDdEvMuI7Aj8iIgJp06RtxBHoAWgN7PgM3pwecHpEV_yDRAM7IvBzQoU4AGuBtRvRSdsI7A3dVihV18CPKWkNbgvSps33R5Fx43pljrjGCrebRfjnJsyinjJp_cSkz6u4eItk45x-unlCgLZuE0Ha-_3-PQI7Bbd4qVK7WFuUaWDAWvwU3mo7peVi5azkv2pAIaUKAaPDl3tcBSJUx36Zrt5ZlX_D8xcof-RBdX4oK0oEfsLfany4S9tQpRMsXkpwUlZ5EdWw-5Y_x3gNqZO0A9pNbuidiTvnJ6Ddf0C7_f7t75uq_vrIhoYNNatFppqCV-xQ1YyTbG5KWbM970c5KjZySsayHOph5GXFR0rlkOmGEloRzgjhpGZkV1C57zklpTgUiqkSSqIuQpudMbdL4s50CItqiqqgB54Z0SsT1itNqTTCTnnUwxdQmq64b1JW3i9TgJIYHWLY6kQdzfoYfkmrztgJExReXdBR3xT-ue_4qeOMUhiTTs46m0tnQ8SLuvTKZ4s3zY9Grk9tJ90FaJfkPKf86t2HkhFot3oMQLunzVtD_w8AAP__rJcd-Q">