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

    <tr>
        <th>Summary</th>
        <td>
            A weird reported diagnosis about user-defined-literal
        </td>
    </tr>

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

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

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

<pre>
    ````cpp
#include <iostream>
struct A{
 void foo(){}
};
A operator ""_to(const char* ptr){
 std::cout<< ptr;
    return A{};
}
int main(){
    123_to. foo();
}
````

The reported diagnosis is 
> no matching literal operator for call to 'operator""_to.' with argument of type 'unsigned long long' or 'const char *', and no matching literal operator template




Well, `123_to.` is a single preprocessing token(i.e. *pp-number*), which is then converted to a token in translation phase 7([lex.phases] p1.7), however, the pp-number is neither a valid integer-literal, floating-point-literal, nor a user-defined-literal. The diagnosis implies that the *pp-number* `123_to.` can be parsed as a user-defined-literal but a viable operator `operator""_to.` cannot be found, which is wrong and misleading. 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8VNGuozgM_ZrwYhVBUqB94KG3nX7BSvs4CsRAdkMSJaad-ftVKLftztxdqaLC9jk-PjiRMerRIras-mDVJZMLTS60P-apqMoy65z62bK6eP5671lxYcWJcaFtbxaFwMRZu0gB5czEt0c6Ulh6ghNrPh4BuDmtYHCO8QPjxxRvLhtVc2FiKzuB8xgkuQCMc8b5d0qI3tlI0E8yMH4CT2GjeFBHUkycmDj1biEmzkyc15pPUgCAgLQE-xD01u8pQluCWWr7kveEllx8J5e_if8N_W7RFlmff0wIAb0LhAqUlqN1UUfQEbYq8Q2sg1lSP2k7gtGEQZqXCYML0EtjgBww3nzGn97kjDdw1zSBDOMyoyVwA9BPj6l8sevXVWBcInd2TOWrt83LUmD8xHjD-BmkVf-vh3D2RhK-D_n78080JtGxutjMY3WRppYQtR0Ngg_og-sxpncg9zcm53WOeVLj_c4uc4dhVXZMVPdJ91OioAkt9M7ecDWVHMgHHrQFCtJGI0k7C36SEaFJn6z6MPgjXwORVRfwZd5svJO74y01OidmeHZOrSxqmjCAhJs0WoG2hCOG3eZKwgzGSdJ23HmnLb1nrEvAJWLYKRy0RfWZzSGtxds2zN5oTJNJWkX84sAvNvbSQofgZYioQMb_6ALdQkm5lp3Bt1NVF18s0YPWOkrMg1us-pfn95D2Jy3HrKNBqbQdc8hUK9RRHGWGbVkfj6Lel7zMplYMXXnYl2VRF4fjvhJV0eNQH4oDYnNQosh0ywsuyrJoSiEqXuYDNrXolawboTrR1Wxf4Cy1yY25zbkLY6ZjXLBtykpUmZEdmrheWZxbvMOaTONUlyy0CbPrljGyfWF0pPhiIU0G2xPcUQf11cmUnVvoSz-zJZh2IvIx3TX8yvh11DQtXd67mfFr6rH97Xxwf2FPjF9XZZHx66r8nwAAAP__3s6yoQ">