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

    <tr>
        <th>Summary</th>
        <td>
            clang: Different rules for instantiation of dynamic exception specifications in C++03 and C++11 modes
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          frederick-vs-ja
      </td>
    </tr>
</table>

<pre>
    Clang currently (since at least 3.1) accepts this program (made well-formed via [CWG1330](https://cplusplus.github.io/CWG/issues/1330.html)) in C++11 mode but rejects it in C++03 mode.

Godbolt links: [acception](https://godbolt.org/z/PToYsjd9e), [rejection](https://godbolt.org/z/TcTvW5a15).

```C++
template<class X>
struct Trans {
    typedef int type;
};

template<class X>
struct Trans<X*> {
    typedef void type;
};

template<class X>
int foo() throw(typename Trans<X>::type);

template<class X>
struct Bar {
    void fun() const throw(typename Trans<X>::type);
};

int main()
{
    foo<int>();
    Bar<int*> bar = Bar<int*>();
}
```

It's unclear to me why clang doesn't apply the resolution of CWG1330 to C++03 mode.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylVMFymzAQ_Rpx0ZgBhI05cHDsNtNbD55JehSSACVCYiRh1_36roBMbDeHpvUAFtrdt2_Fvq0Nv1R7RXWL2Wit0F5dMMq2TmomMPVYCeo8JnGKshJTxsTgHfaddHiwprW0D9495QKfhVKrxthecHySFKP1w_7pMSUkQesDOHXeDw6RHcq-wsUGNbpwx6303VjH0sAuBMBTOjcKB4sQHHe-V5A85Jca71H2AFea4t5A0nr02IoXwYCV9FcOCZkcYpQcULKbn4-G10ZBTVK_BiaB4lySNPojku0cEBvbwtsvuL8fzQ_3wksxMdoHhDn9XyMc2fH0tKbpGhBu2KFNMl9LBfOuF_2gqBeI7JmizuFnRL7MJuftyDw-WqodRsUSgOHnL4PgooHj8NMakcWIisP7-jP4YH5G2Q5sH2c6Gcn_I1Ug2hjogG34zL6z5gzrgKdpL64oQAAcLdlNqeATfLaYB2pvC5iIN6NeUjOjod3_hcAf5YaaeioX5Devq9ShYLIHtwA6O5ErM1BdzPO514E6Odzv30UGHrftdM3pGwQVDo-aga4t9gZDcefugtk0ArgRDvgWHtNhgEHgOwHqckaNob-xafCi6BB5J7SIV4SXpKSRl16JakIMIjvIphFhsmA7KuGgbAuN6TzVXtI3XH6Bc5YMi5-LHLEbBJONZJOLu1U21fxuELhotKq60948WJjp4UWp09vfCiZXkOz1pFlvclJGXZVuKBVlkxTNpqxTylK-XedplogsJ9u8TiNFa6FcBbpHWabFGU8QsAb1R7LKkixLimSb5KRYJ3G-aXhBeMHyosy3NEd5IqAnVBx4hKEQ2WqiVI-tA6OSzrt3I7SwbLUQUzrAp6PvjK0aC5qzkr2uTm71QqOJQjWV8Bv6BrrZ">