Skip to content

Commit 6b4138d

Browse files
committed
[lldb] Add hardcoded bitsize version of real builtin type
1 parent b60e906 commit 6b4138d

2 files changed

Lines changed: 33 additions & 0 deletions

File tree

lldb/source/Plugins/TypeSystem/D/DType.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ lldb::Format DType::GetFormat() const {
3737
case eDTypeKindFloat:
3838
case eDTypeKindDouble:
3939
case eDTypeKindReal:
40+
case eDTypeKindReal64:
41+
case eDTypeKindReal80:
42+
case eDTypeKindReal128:
4043
return lldb::eFormatFloat;
4144
case eDTypeKindVoid:
4245
return lldb::eFormatVoid;
@@ -67,6 +70,9 @@ lldb::Encoding DType::GetEncoding(uint64_t &count) const {
6770
case eDTypeKindFloat:
6871
case eDTypeKindDouble:
6972
case eDTypeKindReal:
73+
case eDTypeKindReal64:
74+
case eDTypeKindReal80:
75+
case eDTypeKindReal128:
7076
return lldb::eEncodingIEEE754;
7177
default:
7278
count = 0;
@@ -114,12 +120,18 @@ lldb::BasicType DType::GetBasicType() const {
114120
case eDTypeKindDouble:
115121
return lldb::eBasicTypeDouble;
116122
case eDTypeKindReal:
123+
case eDTypeKindReal64:
124+
case eDTypeKindReal80:
125+
case eDTypeKindReal128:
117126
return lldb::eBasicTypeLongDouble;
118127
case eDTypeKindCFloat:
119128
return lldb::eBasicTypeFloatComplex;
120129
case eDTypeKindCDouble:
121130
return lldb::eBasicTypeDoubleComplex;
122131
case eDTypeKindCReal:
132+
case eDTypeKindCReal64:
133+
case eDTypeKindCReal80:
134+
case eDTypeKindCReal128:
123135
return lldb::eBasicTypeLongDoubleComplex;
124136
default:
125137
return lldb::eBasicTypeOther;
@@ -175,11 +187,20 @@ llvm::Optional<uint64_t> DType::GetBitSize(DTypeKind kind, llvm::Triple &target_
175187
case eDTypeKindULong:
176188
case eDTypeKindDouble:
177189
case eDTypeKindCFloat:
190+
case eDTypeKindReal64:
178191
return 64;
192+
case eDTypeKindReal80:
193+
return 80;
179194
case eDTypeKindCent:
180195
case eDTypeKindUCent:
181196
case eDTypeKindCDouble:
197+
case eDTypeKindReal128:
198+
case eDTypeKindCReal64:
182199
return 128;
200+
case eDTypeKindCReal80:
201+
return 160;
202+
case eDTypeKindCReal128:
203+
return 256;
183204
case eDTypeKindReal:
184205
return GetRealBitSize(target_triple);
185206
case eDTypeKindCReal:
@@ -230,6 +251,9 @@ ConstString DType::GetName(DTypeKind kind)
230251
case eDTypeKindDouble:
231252
return ConstString("double");
232253
case eDTypeKindReal:
254+
case eDTypeKindReal64:
255+
case eDTypeKindReal80:
256+
case eDTypeKindReal128:
233257
return ConstString("real");
234258
case eDTypeKindIFloat:
235259
return ConstString("ifloat");
@@ -242,6 +266,9 @@ ConstString DType::GetName(DTypeKind kind)
242266
case eDTypeKindCDouble:
243267
return ConstString("cdouble");
244268
case eDTypeKindCReal:
269+
case eDTypeKindCReal64:
270+
case eDTypeKindCReal80:
271+
case eDTypeKindCReal128:
245272
return ConstString("creal");
246273
default:
247274
return ConstString();

lldb/source/Plugins/TypeSystem/D/DType.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,18 @@ enum DTypeKind : uint8_t {
3838
eDTypeKindFloat,
3939
eDTypeKindDouble,
4040
eDTypeKindReal,
41+
eDTypeKindReal64,
42+
eDTypeKindReal80,
43+
eDTypeKindReal128,
4144
eDTypeKindIFloat,
4245
eDTypeKindIDouble,
4346
eDTypeKindIReal,
4447
eDTypeKindCFloat,
4548
eDTypeKindCDouble,
4649
eDTypeKindCReal,
50+
eDTypeKindCReal64,
51+
eDTypeKindCReal80,
52+
eDTypeKindCReal128,
4753
eDTypeKindMax,
4854
};
4955

0 commit comments

Comments
 (0)