<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">