Skip to content

Commit 7631f74

Browse files
committed
[lldb] Add hardcoded bitsize version of real builtin type
1 parent c90a2d6 commit 7631f74

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

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

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ lldb::Format DType::GetFormat() const {
3636
case eDTypeKindFloat:
3737
case eDTypeKindDouble:
3838
case eDTypeKindReal:
39+
case eDTypeKindReal64:
40+
case eDTypeKindReal80:
41+
case eDTypeKindReal128:
3942
return lldb::eFormatFloat;
4043
case eDTypeKindVoid:
4144
return lldb::eFormatVoid;
@@ -66,6 +69,9 @@ lldb::Encoding DType::GetEncoding(uint64_t &count) const {
6669
case eDTypeKindFloat:
6770
case eDTypeKindDouble:
6871
case eDTypeKindReal:
72+
case eDTypeKindReal64:
73+
case eDTypeKindReal80:
74+
case eDTypeKindReal128:
6975
return lldb::eEncodingIEEE754;
7076
default:
7177
count = 0;
@@ -113,12 +119,18 @@ lldb::BasicType DType::GetBasicType() const {
113119
case eDTypeKindDouble:
114120
return lldb::eBasicTypeDouble;
115121
case eDTypeKindReal:
122+
case eDTypeKindReal64:
123+
case eDTypeKindReal80:
124+
case eDTypeKindReal128:
116125
return lldb::eBasicTypeLongDouble;
117126
case eDTypeKindCFloat:
118127
return lldb::eBasicTypeFloatComplex;
119128
case eDTypeKindCDouble:
120129
return lldb::eBasicTypeDoubleComplex;
121130
case eDTypeKindCReal:
131+
case eDTypeKindCReal64:
132+
case eDTypeKindCReal80:
133+
case eDTypeKindCReal128:
122134
return lldb::eBasicTypeLongDoubleComplex;
123135
default:
124136
return lldb::eBasicTypeOther;
@@ -169,11 +181,20 @@ llvm::Optional<uint64_t> DType::GetBitSize(DTypeKind kind, llvm::Triple &target_
169181
case eDTypeKindULong:
170182
case eDTypeKindDouble:
171183
case eDTypeKindCFloat:
184+
case eDTypeKindReal64:
172185
return 64;
186+
case eDTypeKindReal80:
187+
return 80;
173188
case eDTypeKindCent:
174189
case eDTypeKindUCent:
175190
case eDTypeKindCDouble:
191+
case eDTypeKindReal128:
192+
case eDTypeKindCReal64:
176193
return 128;
194+
case eDTypeKindCReal80:
195+
return 160;
196+
case eDTypeKindCReal128:
197+
return 256;
177198
case eDTypeKindReal:
178199
return GetRealBitSize(target_triple);
179200
case eDTypeKindCReal:
@@ -224,6 +245,9 @@ ConstString DType::GetName(DTypeKind kind)
224245
case eDTypeKindDouble:
225246
return ConstString("double");
226247
case eDTypeKindReal:
248+
case eDTypeKindReal64:
249+
case eDTypeKindReal80:
250+
case eDTypeKindReal128:
227251
return ConstString("real");
228252
case eDTypeKindIFloat:
229253
return ConstString("ifloat");
@@ -236,6 +260,9 @@ ConstString DType::GetName(DTypeKind kind)
236260
case eDTypeKindCDouble:
237261
return ConstString("cdouble");
238262
case eDTypeKindCReal:
263+
case eDTypeKindCReal64:
264+
case eDTypeKindCReal80:
265+
case eDTypeKindCReal128:
239266
return ConstString("creal");
240267
default:
241268
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)