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