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

    <tr>
        <th>Summary</th>
        <td>
            [clang-scan-deps] Error if integer literal contains a single quote
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:frontend,
            clang:tooling
      </td>
    </tr>

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

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

<pre>
    On main, running `clang-scan-deps -format=p1689 -- clang++ -std=c++20 test.cc` on this program
```c++
// File: test.cc
#if 123'124
#endif
```
gives:
```
Error while scanning dependencies for test.cc:
test.cc:1:8: error: token is not a valid binary operator in a preprocessor subexpression
```

The diagnostic seems to be `err_pp_expr_bad_token_binop`. Removing the single quote fixes this, but from what I can tell, this is in fact a valid *pp-number* preprocessing token (see [[lex.ppnumber]](https://eel.is/c++draft/lex.ppnumber#nt:pp-number)), so I think this is just straight-up a bug.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsU02PnDgQ_TXmUgKBTdPMgUPP9LaU00q7e2_ZuIBKjO21TWfy7yPTnfmIIpVAduHye7z3ZIw0W8SBHZ7Z4VzILS0uDP9SCJI0FsrpH8PfFlZJlvEXCJu1ZGdgXT0aaecyjtKWGn2EcnJhlYmJs2-6_gnKEvZPGH9m_BnKmDQT5_G-5DUkjKkaR9bV4CykhSL44OYgV1afWX1iXX2vx5HHLr8wfoELGWTi9Dbk0RM0QcMF48eGt2-baDVNvw29L2e6YWTi9MfmXyG4AN8XMgiZ5k5co0er0Y6EESYX3hD8GvK-bpg49Rkk5kE7WvcNLVAE6xJIuElDGhRZGX6A8xhkcgHIggQf0Ac3YowuQNwUvvqAMZKzf4R6f_63IGiSs3Ux0QgRcY2QHCjMemEIV--vedJVSX3dwVwVWedZV1fwD67ulimmBSGSnQ3C_5tLCBO9YtwVyhZQW4IpuBW-LzLBFxilhYTG5N6uYi4LkxzfOTJ-8r6026owMH76QG-_cP8tjPcREXYjPht8rbx_HDicc_F-Scnvau0eQDRVRnR5-EMHOSXGL5-OcmETEx8vf9rrBaKDLxmv_faG-usWE8QUJM1LKjcPEtQ2V4UehH4ST7LAoTk2gh-7-tAUyyDVUR2mdmzapuN9J1GIqVGohZLHdlJ9QQOveVu3Tde0dd3ySmg91lpwXfO-O3aKtTWukkxlzG2tXJgLinHDoe_7p64wUqGJezQ5v2dJnKbgbEKrGeeMv3xoJOcM5bjxHOQw5JGl2ubI2tpQTPH9kkTJ7JH_LcPscIa762kCsglnDGAoYZAGRmeTJBtBfnJHsQUzfFZmprRsqhrdmuUwt1-v0gf3Fccs0k4zi7cz_RkAAP__AlFuPg">