diff options
| author | Erich Keane <erich.keane@intel.com> | 2018-04-17 22:00:54 +0000 |
|---|---|---|
| committer | Erich Keane <erich.keane@intel.com> | 2018-04-17 22:00:54 +0000 |
| commit | 5da1e6915696a6ab4dd3cdc549c107b631cbf2ed (patch) | |
| tree | 5dfaae5f9fd6562d037fa60b783c91bdb3bf2cd1 /clang | |
| parent | 480b7bc906865fdde915844210ff1efbd88d3103 (diff) | |
| download | bcm5719-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.cpp | 3 | ||||
| -rw-r--r-- | clang/test/CodeGenCXX/mangle-ms.cpp | 4 |
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> |

