[flang] answer comments on host/f18 type mappings
authorJean Perier <jperier@hsw1.pgi.net>
Mon, 25 Feb 2019 17:32:16 +0000 (09:32 -0800)
committerGitHub <noreply@github.com>
Wed, 27 Mar 2019 17:16:07 +0000 (10:16 -0700)
Original-commit: flang-compiler/f18@96bce5c4d9348a325a6da30d08c78c56b5a906d3
Tree-same-pre-rewrite: false

flang/lib/evaluate/host.h

index 7f03068..5bd7e25 100644 (file)
@@ -112,9 +112,16 @@ template<> struct HostTypeHelper<Type<TypeCategory::Integer, 8>> {
   using Type = std::int64_t;
 };
 
-// no int 128bit
+template<> struct HostTypeHelper<Type<TypeCategory::Integer, 16>> {
+#if (defined(__GNUC__) || defined(__clang__)) && defined(__SIZEOF_INT128__)
+  using Type = __int128_t;
+#else
+  using Type = UnsupportedType;
+#endif
+};
 
-// no float 16bits
+// TODO no mapping to host types are defined currently for 16bits float
+// It should be defined when gcc/clang have a better support for it.
 
 template<> struct HostTypeHelper<Type<TypeCategory::Real, 4>> {
   // IEE 754 64bits