summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ItaniumMangle.cpp
diff options
context:
space:
mode:
authorSjoerd Meijer <sjoerd.meijer@arm.com>2017-09-08 09:42:32 +0000
committerSjoerd Meijer <sjoerd.meijer@arm.com>2017-09-08 09:42:32 +0000
commitab36f33db8ed1cd16277016f834527254c7a3d0f (patch)
tree4c0858785f71098aab2477eedbec55e76d4f0b8a /clang/lib/AST/ItaniumMangle.cpp
parent51ee12a9fbef806fd770151de343c563402de42b (diff)
downloadbcm5719-llvm-ab36f33db8ed1cd16277016f834527254c7a3d0f.tar.gz
bcm5719-llvm-ab36f33db8ed1cd16277016f834527254c7a3d0f.zip
Add _Float16 as a C/C++ source language type
This adds _Float16 as a source language type, which is a 16-bit floating point type defined in C11 extension ISO/IEC TS 18661-3. In follow up patches documentation and more tests will be added. Differential Revision: https://reviews.llvm.org/D33719 llvm-svn: 312781
Diffstat (limited to 'clang/lib/AST/ItaniumMangle.cpp')
-rw-r--r--clang/lib/AST/ItaniumMangle.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/AST/ItaniumMangle.cpp b/clang/lib/AST/ItaniumMangle.cpp
index 1c90419ca97..95be23f26f1 100644
--- a/clang/lib/AST/ItaniumMangle.cpp
+++ b/clang/lib/AST/ItaniumMangle.cpp
@@ -2445,6 +2445,7 @@ void CXXNameMangler::mangleType(const BuiltinType *T) {
// UNSUPPORTED: ::= De # IEEE 754r decimal floating point (128 bits)
// UNSUPPORTED: ::= Df # IEEE 754r decimal floating point (32 bits)
// ::= Dh # IEEE 754r half-precision floating point (16 bits)
+ // ::= DF <number> _ # ISO/IEC TS 18661 binary floating point type _FloatN (N bits);
// ::= Di # char32_t
// ::= Ds # char16_t
// ::= Dn # std::nullptr_t (i.e., decltype(nullptr))
@@ -2507,6 +2508,9 @@ void CXXNameMangler::mangleType(const BuiltinType *T) {
case BuiltinType::Int128:
Out << 'n';
break;
+ case BuiltinType::Float16:
+ Out << "DF16_";
+ break;
case BuiltinType::Half:
Out << "Dh";
break;
OpenPOWER on IntegriCloud