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

    <tr>
        <th>Summary</th>
        <td>
            C compiler may incorrectly support hexadecimal floating constants in C90 mode
        </td>
    </tr>

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

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

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

<pre>
    Code:
```
#include <stdio.h>

#define XSTR(x)         #x
#define STR(x)          XSTR(x)
#define BAR             1

int main(void)
{
        printf("%s\n", STR(0x1p+BAR));
        return 0;
}
```
Invocation:
```
$ clang t1.c -std=c90 -pedantic -Wall -Wextra && ./a.exe
```
Expected output:
```
0x1p+1
```
Actual output:
```
0x1p+BAR
```
Version:
```
$ clang --version
clang version 14.0.0
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNU02P2yAQ_TX4gmJh8Ed88CFxdqVet1XbKwYcUxGwAKfOv-_E8TbdbVZaa2QPvDdvhmHcOXlpWicVYjtEDojsUElWuy0p01aYSSqMWBui1C4dEHta0VeOVL22Cv_8-u0F0e2MaI1IjW8PeMCY33PvVPyG-0bjbch-97KS7vTs30q0jfjEtYX4s9PyLlHtb849bvRA7oGIKEW0CKho7eK2a2VkzkZE95DzKgPG_tPwKk7eYvIXQtXhYRe_2LMTPGpnP-5zjoXh9ohjlgq8gU4jdhA1wZtRSW6jhs0f3Bh4qzl6jhEtwXCK6DNP1aweyj7NoxJRSeymOE7xo-zrWbOH4E7EiZvPKVy79Qj-rnz41Ok3m_NKXYDb5rqFszwlKXmnkMiGyZrVPIk6GtW0WLjTqI3yMAoXDNPrvIcmmAsO0zg6H_GgZi6V0Cc4Vm8cXAwkEc6GCI0OEIJbaPwJfotk8qYZYhzDtXT6DHbUcZi6FJLAwpjz62czevcL8sBShzCpAE5RbFmWDI1goiTbjFc5F7Jn9baiXU0k72kmiyoXieGdMqFBxR5m0KrfeJG4zmNxSHRDCaWkJJTUIFimuei6oldlXdFSCZmjnCgYe5Ne60idPya-WUrqpmMA0OgQwx3kIeijVWpJB_p8ioPzzXhyPmPJkrlZKv8DUN4hXg">