<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylVMly4yAQ_Rp06YpLQraWgw6xHd-nkh9AomXhwqBhSeL5-mlkJ3FSc5sqVEA3vF7eQ72Vl-5ZnZUWDoIFxst1WzQN4zvoY4C3CR0KD8pAmEQA5X1EWiLMzvYaz_BGXmGAVbmIwdIEDkN0dP4yI_SozBEkyjigXAJU-atVkqYUIqF_Q1N-2d6hLZHxH6BnK9WoCLW_gIDZKhPQwe8oNJkHEZQ1KzhYB_guzrNGVj7CFMLsacH4gcbRyt7qsLLuSLs_9L00p_JUnzYNy_csf0xZXseyNeKMfhYDwjYegdXbqxkgIAUQgULsBi28hxdWPsFgzYBzgB2wcg-j0J4O3O583NxBqpPa_jgyTl1v72Hho2pyUXV0iA6YqPUc3CcS0I39DfRz8T3vl4na6icbNTULqVmTcBLQOesWnnEQ0X9r-pUwfyMsxSajMDLtdlRlspRPCz3-WtmKekLyMD6gkAl1pwWR5JVGEzQxNKReeMaLTHalbMtWZBRtsq77FeP7rKO3BrPodPeDJBWm2K8Ge6aN1q8f0wNJ5oQDdeWwiJKgD5uyLYps6tqxGtdFWTZNJdc9b5pNVYqKy7ysG17VY6ZFj9p3bLNlnA-M07TlpEieMk-mlDylMDpLqjLyy3Or40GZVxLanePGtk-WzT77_zJUx3NOo6iLds039UqWdYs1531Z9VVTSLbO8SyUXiWcJOLMdQtkH4-enFr54L-cpEt1NIhL1ZRhUEFj93yVhcOUxELvT0Umluk3YD5f8f1TlBa9YbwO4OnF-fFyVUiVZ0s13VLKX3McXJQ>53911</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Should reject `C auto *f()` when deduced return type doesn't satisfy `C`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            c++20,
            clang:frontend,
            accepts-invalid,
            concepts
      </td>
    </tr>

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

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

<pre>
    Similar to #49188, but whereas in that issue the problem was an `auto` return type being deduced to `void`, here the problem is the `auto` in the return type being modified by a pointer qualification. For example: https://godbolt.org/z/T8j3j7j58
```
namespace Bug {
  template<class T> concept C = false;

  C auto *f() {
    return (int*)nullptr;
  }
}
```
This should be a hard error, because `auto` deduces to `int` and `C<int>` is false. But instead, Clang silently accepts!
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxtUtty4yAM_Rr8omnGxokvD35okvZ9p_0BMEpMhoCXS9vs169w0jbd2RkYkARH0tGRTl2GF33WRniIDhiv133VdYzvQKYI7xN6FAG0hTiJCDqEhHRFmL2TBs_wTlFhgTWlSNHRAR5j8vT-MiNI1PYIClUaUS0JmvLNaUVHTpHRf6DpsJh3aEtm_A_o2Sl90IQqLyBgdtpG9PA7CUPuUUTt7AqenQf8EOfZIKsfYYpxDnRh_JnW0SnpTFw5fyTrD-3X7lSf2tOmY-WelY-5yutaTCvOGGYxImzTEVi7vboBIlICESnFbjQiBHhl9ROMzo44R9gBq_dwECbQg9ufz587yH0S7Y8Hxon1_h4WPrumEHVHj-iBTcbM0X8hAf3Y30C_Lj_rfp2I1jC5ZIgsJLIm4RWg984vc8ZRpPCD9OvAwm1gOTc5hVXZ2lGX2VM_LeMJ185WxAnJw4aIQmXUnRE0pKAN2mhoQmPmIjBeFWqoVV_3oog6GhxeroV5POEYlwT_cpLzkBDtl47uxaAcBst4GyHQzMPhcq2xKYvkzfDPwHWcklyN7kyGMW-fxwPJL2cncxE4lfm8qfuqKqahLduubTreNfKAKA9yXdVr1VeNwENfS1kYIdGEgW22jPORcTq2nNTNMwvZlYmgEg7ekUKt-o7cOHnQ9o1Eexe4KSdkz2Zf6IGXnFbVVv2ab9qVqtseW85l3cimqxRbl3gW2qxyM1nOhR-WvmQ6BgoaHWL4DpJC9dEiLjUTPtE9OT_8SuljNik4i8VCw7Bw8BfAK0g7">