<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/68961>68961</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:456:possible missing return ?
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dcb314
</td>
</tr>
</table>
<pre>
Static analyser cppcheck says:
clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:456:21: error: Found an exit path from function with non-void return type that has missing return statement [missingReturn]
Source code is
SExpr *result() {
switch (Status) {
case FS_pending:
return force();
case FS_evaluating:
return nullptr; // infinite loop; illegal recursion.
case FS_done:
return Result;
}
}
I think there may be a missing default case.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysU0FvozwQ_TXmMmoENiThwCFRPqRK36npfWXsAbw1NrLHbfPvV9AkW227t-VgRp43fm_GfjJGMzjEhlVHVp0ymWj0odGqE0WZdV5fmjNJMgqkk_YSMYCaZzWieoEoL5GJA8tPLL-uyko3MN4ap2zSyHh72zms5SbeQ1zC5zGg1GfZI12eH__fjEwcymrLxIEXTBwAQ_BhCVqfnAbpAN8NwSxphD74CfrkFBnv4M3QCM67h1dvNASkFBzQZUagURKMMsJkYjRuuCUjScIJHQGrjtfc05pi1elzU2efgkJQXiOY-DkDcP7vfQ7A-CFgTJYY3zNeA9sdbwCA-GZIjcD4fplkil8ASkaE9vxjRqeNG-4jhfW7qu19UPhxPBPfFOOrtEnSX-tdsnamwMQRGG8Zb8G43jhDCNb7edk31uIgLQRUKUTj3eYrjfYOvyd4-hjAXRvbnW6oe_ixPgKNxr0AjRgQJnmBDkHer0djL5OllXKT6UboWtQyw6bY1rtiL8paZGMjClV1SsteFLsur3itldjv1F7XZbfV3S4zDc-5KPJC5LuqEGJTqoJvO6n6Pi877CUrc5yksRtrX6eND0NmYkzYbPf1tsis7NDG1RacXx8xXxwSmgX_0KUhsjK3JlL8fQIZstj8OxfMPkbTWfzz7TLRZinYZiSaVw-uVzoYGlO3UX5ivF00XX8Pc_A_UdEiaWlx4Vy7_BUAAP__JaFA6g">