https://github.com/overmighty requested changes to this pull request.

This PR currently adds two suffixes: `bf16` and just `b`. Is this intended? GCC 
seems to only support `bf16`: https://godbolt.org/z/hEfcrGrG1.

It currently also lets Clang accept the following C++ code if the target 
doesn't have bfloat16 but has float16:

```cpp
auto foo = 1.0bf16;
```

And it lets Clang accept the following C++ code even if the target has neither 
bfloat16 nor float16:

```cpp
auto foo = 1.0b;
```

It also looks like `foo` ends up being of type `double` either way:

```
TranslationUnitDecl 0x5f0373f42d48 <<invalid sloc>> <invalid sloc>
|-TypedefDecl 0x5f0373f439d0 <<invalid sloc>> <invalid sloc> implicit 
__int128_t '__int128'
| `-BuiltinType 0x5f0373f43310 '__int128'
|-TypedefDecl 0x5f0373f43a40 <<invalid sloc>> <invalid sloc> implicit 
__uint128_t 'unsigned __int128'
| `-BuiltinType 0x5f0373f43330 'unsigned __int128'
|-TypedefDecl 0x5f0373f91f70 <<invalid sloc>> <invalid sloc> implicit 
__NSConstantString '__NSConstantString_tag'
| `-RecordType 0x5f0373f43b30 '__NSConstantString_tag'
|   `-CXXRecord 0x5f0373f43a98 '__NSConstantString_tag'
|-TypedefDecl 0x5f0373f43608 <<invalid sloc>> <invalid sloc> implicit 
__builtin_ms_va_list 'char *'
| `-PointerType 0x5f0373f435c0 'char *'
|   `-BuiltinType 0x5f0373f42df0 'char'
|-TypedefDecl 0x5f0373f43960 <<invalid sloc>> <invalid sloc> implicit 
__builtin_va_list '__va_list_tag[1]'
| `-ConstantArrayType 0x5f0373f43910 '__va_list_tag[1]' 1
|   `-RecordType 0x5f0373f436f0 '__va_list_tag'
|     `-CXXRecord 0x5f0373f43660 '__va_list_tag'
`-VarDecl 0x5f0373f92018 <a.cpp:1:1, col:12> col:6 foo 'double' cinit
  `-FloatingLiteral 0x5f0373f920c8 <col:12> 'double' 1.000000e+00
```

https://github.com/llvm/llvm-project/pull/134214
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to