summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorErich Keane <erich.keane@intel.com>2018-04-17 22:00:54 +0000
committerErich Keane <erich.keane@intel.com>2018-04-17 22:00:54 +0000
commit5da1e6915696a6ab4dd3cdc549c107b631cbf2ed (patch)
tree5dfaae5f9fd6562d037fa60b783c91bdb3bf2cd1 /clang
parent480b7bc906865fdde915844210ff1efbd88d3103 (diff)
downloadbcm5719-llvm-5da1e6915696a6ab4dd3cdc549c107b631cbf2ed.tar.gz
bcm5719-llvm-5da1e6915696a6ab4dd3cdc549c107b631cbf2ed.zip
Add Microsoft mangling for _Float16
Enables _Float16 on Windows by creating a mangling mechanism in MicrosoftMangle. It accomplishes this by mangling as a structure type of __clang::_Float16, similar to how Complex works. Patch By: mibintc Differential Revision: https://reviews.llvm.org/D45738 llvm-svn: 330225
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/AST/MicrosoftMangle.cpp3
-rw-r--r--clang/test/CodeGenCXX/mangle-ms.cpp4
2 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/AST/MicrosoftMangle.cpp b/clang/lib/AST/MicrosoftMangle.cpp
index 78420ef18bf..1039ae87ab6 100644
--- a/clang/lib/AST/MicrosoftMangle.cpp
+++ b/clang/lib/AST/MicrosoftMangle.cpp
@@ -1919,6 +1919,9 @@ void MicrosoftCXXNameMangler::mangleType(const BuiltinType *T, Qualifiers,
break;
case BuiltinType::Float16:
+ mangleArtificalTagType(TTK_Struct, "_Float16", {"__clang"});
+ break;
+
case BuiltinType::Float128:
case BuiltinType::Half: {
DiagnosticsEngine &Diags = Context.getDiags();
diff --git a/clang/test/CodeGenCXX/mangle-ms.cpp b/clang/test/CodeGenCXX/mangle-ms.cpp
index 46c011e954a..3cc1b1645e9 100644
--- a/clang/test/CodeGenCXX/mangle-ms.cpp
+++ b/clang/test/CodeGenCXX/mangle-ms.cpp
@@ -466,6 +466,10 @@ namespace Complex {
// CHECK-DAG: define dso_local void @"?f@Complex@@YAXU?$_Complex@H@__clang@@@Z"(
void f(_Complex int) {}
}
+namespace Float16 {
+// CHECK-DAG: define dso_local void @"?f@Float16@@YAXU_Float16@__clang@@@Z"(
+void f(_Float16) {}
+}
namespace PR26029 {
template <class>
OpenPOWER on IntegriCloud