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

    <tr>
        <th>Summary</th>
        <td>
            Incorrect semantic error reported by clang++ when using "uint16_t" together with global namespace.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    ### Source code and error message
Error message was reported by clang++ when compiling below source code:
```
#include <stdint.h>

class CLangTester {
 public:
    uint8_t test();
};

uint8_t ::CLangTester::test() {
 return 23;
}

int main() {
    CLangTester tester;
    tester.test();
 return 0;
}

```

Error message:
```
/usr/bin/clang++ -c -I/usr/local/include -I. -Wall -g -std=c++14 namespace.cpp -o build/namespace.o
namespace.cpp:21:1: error: 'uint8_t' (aka 'unsigned char') is not a class, namespace, or enumeration
uint8_t ::CLangTester::test() {
^
1 error generated.
make: *** [Makefile:28: build/namespace.o] Error 1
```


### Version info
clang --version output:
```
clang version 10.0.0-4ubuntu1 
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

```

### Additional info
The error disappears when I changed 
```
uint8_t ::CLangTester::test() {
```
to 
```
uint8_t CLangTester::test() {
```

Apparently the clang++ ignored the space between `uint8_t` and `::`
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVVtv6zYM_jXMC-FAlq998IPbngAFtqcV2-OBLLO2VkUydOnl3w-KnSXt6QacAyiIJZKfSH6faeG9mgxRB9UtVPc7EcNsXaeVnMm8RWHaZjfY8b0DXqwL_7DRSUJpR0JhRiTnrMMjeS8mAtZ_u97jq_DoaLEu0IjDO0otzAT8Fvgtvs5kUNrjorQyEw6k7Sv6CzwUPbAearYt1gMvlJE6joRQ3PkwKhP2MxTfko31Ugvv8e43YaZH8oEcQnMLrMclDlrJFQ8RMSoT2u8BA_kAvAV-A0VyhOZ-e2D92SdFFf0V6HpwCT1f4ihEZ5AXF6wTkDIBj0KZj96IHxING_TZtu73nxM8X8I-3fGhSZ84-KqNh-gd8MOQsjpcc5JJzB7-tWsrhQZ-ODc9e9hj9pfQGrMJMx9GKO7lGpmXaMSR_CIk7eWyYGZxiEqPwA8XgwXWf3CDouc5FH36rVJKD8Cbrf3AGwTeimdxOjQnuY4oZ-GAN6mfyqOxAQWe2Ad-d8kjbaxDMvFITgRlzS_wClVSV77pfCKToGjcA-uP4pnWdPt1IVS3v4tnelI6GXibrF91obrHlaP8R_JWnW9v25_kvLIGlXmyq8LNhFn2sh3bGJYYfmR49Tt75WzP9iwr4xBNiDkC6x-FmygF4ltbf6_LbJGZVia-ZZOJyT47EiMe7Ug6eS3Wqzdg_YPxQWhN473amLqS0ldSvJTSj6NKHAh9ruZxpq2to_JiWUg4v06Fh8SwmWjET4g_zd5VbLD_hfZzOMD6flmEIxP0O4aZPkw1NRnraDydn-jGgcIrkUGo2VnVNTvNzoR3ug9qthu7YrwpbsSOurwpqpY1bcV3c1c-1bxpqZY35VPBGRvrPKe2KqksqW0Z7VTHGa9YzjhrK1bxfV2Xss5rTk9VMzQNQcnoKJTea_1y3Fs37ZT3kbqc52XV7LQYSPvTJ4DzrRSevgauSwHZECcPJdPKB3-BCCpo6h6MtM6RDOjpKExQcmP0f4d-9GngA-epH3mdXnOOwU4UZnL4qsKMk7aD0FczZRed7uYQFp_6xQ_AD5MKcxz20h7TrNIv579scfZvkiFNrlSoB37Yan3p-D8BAAD___nLFqI">