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

    <tr>
        <th>Summary</th>
        <td>
            A [[nonblocking]] destructor can trigger a bogus "missing exception specification" warning
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          dougsonos
      </td>
    </tr>
</table>

<pre>
    ```
class Foo {
public:
        Foo();
        
        void bar() [[clang::nonblocking]];
        
        ~Foo() [[clang::nonblocking]];
};

void Foo::bar() // no diagnostic
{
}

Foo::~Foo() // error: '~Foo' is missing exception specification 'noexcept'
{
}
```

Seems to come from `Sema::CheckEquivalentExceptionSpec`. Something about the function effect being part of the type triggers this.

I can look at this.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUk9GOmzoQhp_G3Iw2MgOB5YKL5Owines8gTED-KzxcGyT7d702Ssgm6Zqq6qSZbB_-5t_mEGFYAZHVIvjWRxfErXEkX3d8TIEdhySlruPWhTyNuSLkCdtVQjQMIMoz_vWvLTWaJGd9qWQVcMs8FlgJbLzffP-cmXTQav8fgS26GdtlRtWRnZy7FrL-s24QRxf1vErytd7kL8ilI-0dd7crKzt5oMtbAQ24Bg6owbHIRr9yXiAPZDukEdrO4W8Zy-yEwgsd7UEE2AyIRg3AH3RNEfDDsJM2vRGq20lsHS8iwLL30b_sUL7fCGaAkQGzRNB73kCUcgLTWr3-M9I-u31_8VclSUXXz8dXGbSopAHuPBEcVzdqZaXCHEk6BenN2PU96QjtLTqs_IRuN9OxI-ZIHozDOQDxNGEw6Orf0ErB5b5DVTc5aSrs67KKpVQnZb4nFfHZ8RkrFNE3aWy6gqVdblusStLKfNe9URdVerE1CgxT6Ws0jLPcjxgWhx1nlKnZNGS7kUuaVLGHqy9Tgf2Q2JCWKhO07TEIrGqJRu27kd09A6bKhDXn8HX66WndhmCyKU1IYbvmGiipfp0a7yfug06CtEvOrLf8r19D1DQ8rAEEIh_qLxAhHflnXFDsnhbjzHOYS3c1k6DiePSHjRPApvV1O3xNHv-j3QU2GypBIHNLddrjd8CAAD__0H4Lsg">