<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">