[Lldb-commits] [lldb] [lldb][CompilerType] Add CompilerType::IsRealFloatingPointType (PR #178904)
via lldb-commits
lldb-commits at lists.llvm.org
Fri Jan 30 07:36:14 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-risc-v
Author: Michael Buch (Michael137)
<details>
<summary>Changes</summary>
This is part of a patch series to clean up the `TypeSystemClang::IsFloatingPointType` API. Currently the API is a bit of a foot-gun because it returns `true` for both Complex floats and vector types whose element types are floats. The former aligns with the `clang::Type::isFloatingType` API, but the latter doesn't. This specific implementation choice will be addressed in a separate patch. This patch adds a new `CompilerType::IsRealFloatingPointType` API which clients can use to query about non-complex floats. For `TypeSystemClang` this just dispatches to the similarly named `clang::Type::isRealFloatingType`.
This allows us to clean up some of the callers which only wanted to handle non-complex floats.
On encountering complex/vector floats, some of the ABI plugins would set an error but then immediately overwrite the error to something else. I just removed those branches entirely, since it was essentially dead code.
---
Patch is 30.96 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/178904.diff
16 Files Affected:
- (modified) lldb/include/lldb/Symbol/CompilerType.h (+4)
- (modified) lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp (+8-13)
- (modified) lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp (-8)
- (modified) lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp (-7)
- (modified) lldb/source/Plugins/ABI/LoongArch/ABISysV_loongarch.cpp (+5-9)
- (modified) lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp (+40-56)
- (modified) lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp (+23-29)
- (modified) lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp (+23-29)
- (modified) lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp (+7-11)
- (modified) lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp (+27-32)
- (modified) lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.cpp (-8)
- (modified) lldb/source/Plugins/ABI/X86/ABISysV_x86_64.cpp (+27-34)
- (modified) lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.cpp (+27-34)
- (modified) lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp (+1-2)
- (modified) lldb/source/Symbol/CompilerType.cpp (+5)
- (modified) lldb/unittests/Symbol/TestTypeSystemClang.cpp (+21)
``````````diff
diff --git a/lldb/include/lldb/Symbol/CompilerType.h b/lldb/include/lldb/Symbol/CompilerType.h
index 869c5076ee0a7..4f1662ee6d162 100644
--- a/lldb/include/lldb/Symbol/CompilerType.h
+++ b/lldb/include/lldb/Symbol/CompilerType.h
@@ -144,8 +144,12 @@ class CompilerType {
bool IsDefined() const;
+ /// Returns \c true for floating point types (including complex floats).
bool IsFloatingPointType(bool &is_complex) const;
+ /// Returns \c true for non-complex float types.
+ bool IsRealFloatingPointType() const;
+
bool IsFunctionType() const;
uint32_t IsHomogeneousAggregate(CompilerType *base_type_ptr) const;
diff --git a/lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp b/lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp
index e41a28bd21c36..95f4057b1d3e8 100644
--- a/lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp
+++ b/lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp
@@ -479,19 +479,14 @@ ABISysV_arc::GetReturnValueObjectSimple(Thread &thread,
value.SetValueType(Value::ValueType::Scalar);
}
// Floating point return type.
- else if (type_flags & eTypeIsFloat) {
- bool is_complex = false;
-
- if (compiler_type.IsFloatingPointType(is_complex) &&
- !compiler_type.IsVectorType() && !is_complex) {
- const size_t byte_size =
- llvm::expectedToOptional(compiler_type.GetByteSize(&thread))
- .value_or(0);
- auto raw_value = ReadRawValue(reg_ctx, byte_size);
-
- if (!SetSizedFloat(value.GetScalar(), raw_value, byte_size))
- return ValueObjectSP();
- }
+ else if (compiler_type.IsRealFloatingPointType()) {
+ const size_t byte_size =
+ llvm::expectedToOptional(compiler_type.GetByteSize(&thread))
+ .value_or(0);
+ auto raw_value = ReadRawValue(reg_ctx, byte_size);
+
+ if (!SetSizedFloat(value.GetScalar(), raw_value, byte_size))
+ return ValueObjectSP();
}
// Unsupported return type.
else
diff --git a/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp b/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp
index 8e690218843fa..84791a90a450d 100644
--- a/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp
+++ b/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp
@@ -1695,7 +1695,6 @@ Status ABIMacOSX_arm::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
Thread *thread = frame_sp->GetThread().get();
bool is_signed;
- bool is_complex;
RegisterContext *reg_ctx = thread->GetRegisterContext().get();
@@ -1766,13 +1765,6 @@ Status ABIMacOSX_arm::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
"We don't support returning longer than 64 bit "
"integer values at present.");
}
- } else if (compiler_type.IsFloatingPointType(is_complex)) {
- if (is_complex)
- error = Status::FromErrorString(
- "We don't support returning complex values at present");
- else
- error = Status::FromErrorString(
- "We don't support returning float values at present");
}
if (!set_it_simple)
diff --git a/lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp b/lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp
index 7258f5cc9acb5..0c53542e72f22 100644
--- a/lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp
+++ b/lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp
@@ -1884,13 +1884,6 @@ Status ABISysV_arm::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
"We don't support returning longer than 64 bit "
"integer values at present.");
}
- } else if (compiler_type.IsFloatingPointType(is_complex)) {
- if (is_complex)
- error = Status::FromErrorString(
- "We don't support returning complex values at present");
- else
- error = Status::FromErrorString(
- "We don't support returning float values at present");
}
if (!set_it_simple)
diff --git a/lldb/source/Plugins/ABI/LoongArch/ABISysV_loongarch.cpp b/lldb/source/Plugins/ABI/LoongArch/ABISysV_loongarch.cpp
index 91b965d3b5715..d2a2cbe0643ac 100644
--- a/lldb/source/Plugins/ABI/LoongArch/ABISysV_loongarch.cpp
+++ b/lldb/source/Plugins/ABI/LoongArch/ABISysV_loongarch.cpp
@@ -509,16 +509,12 @@ ValueObjectSP ABISysV_loongarch::GetReturnValueObjectSimple(
return ValueObjectConstResult::Create(thread.GetStackFrameAtIndex(0).get(),
value, ConstString(""));
}
- if (type_flags & eTypeIsFloat) {
- bool is_complex = false;
-
- if (compiler_type.IsFloatingPointType(is_complex) &&
- !(type_flags & eTypeIsVector) && !is_complex) {
- return_valobj_sp =
- GetValObjFromFPRegs(thread, reg_ctx, machine, type_flags, byte_size);
- return return_valobj_sp;
- }
+ if (compiler_type.IsRealFloatingPointType()) {
+ return_valobj_sp =
+ GetValObjFromFPRegs(thread, reg_ctx, machine, type_flags, byte_size);
+ return return_valobj_sp;
}
+
return return_valobj_sp;
}
diff --git a/lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp b/lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp
index e03604467ceec..338d5c152f612 100644
--- a/lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp
+++ b/lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp
@@ -708,7 +708,6 @@ Status ABISysV_mips::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
Thread *thread = frame_sp->GetThread().get();
bool is_signed;
- bool is_complex;
RegisterContext *reg_ctx = thread->GetRegisterContext().get();
@@ -749,13 +748,6 @@ Status ABISysV_mips::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
"We don't support returning longer than 64 bit "
"integer values at present.");
}
- } else if (compiler_type.IsFloatingPointType(is_complex)) {
- if (is_complex)
- error = Status::FromErrorString(
- "We don't support returning complex values at present");
- else
- error = Status::FromErrorString(
- "We don't support returning float values at present");
}
if (!set_it_simple)
@@ -795,7 +787,6 @@ ValueObjectSP ABISysV_mips::GetReturnValueObjectImpl(
return return_valobj_sp;
bool is_signed = false;
- bool is_complex = false;
// In MIPS register "r2" (v0) holds the integer function return values
const RegisterInfo *r2_reg_info = reg_ctx->GetRegisterInfoByName("r2", 0);
@@ -858,11 +849,9 @@ ValueObjectSP ABISysV_mips::GetReturnValueObjectImpl(
return_valobj_sp = ValueObjectMemory::Create(
&thread, "", Address(mem_address, nullptr), return_compiler_type);
return return_valobj_sp;
- } else if (return_compiler_type.IsFloatingPointType(is_complex)) {
+ } else if (return_compiler_type.IsRealFloatingPointType()) {
if (IsSoftFloat(fp_flag)) {
uint64_t raw_value = reg_ctx->ReadRegisterAsUnsigned(r2_reg_info, 0);
- if (is_complex)
- return return_valobj_sp;
switch (*bit_width) {
default:
return return_valobj_sp;
@@ -894,51 +883,46 @@ ValueObjectSP ABISysV_mips::GetReturnValueObjectImpl(
f0_value.GetData(f0_data);
lldb::offset_t offset = 0;
- if (!return_compiler_type.IsVectorType() && !is_complex) {
- switch (*bit_width) {
- default:
- return return_valobj_sp;
- case 64: {
- static_assert(sizeof(double) == sizeof(uint64_t));
- const RegisterInfo *f1_info = reg_ctx->GetRegisterInfoByName("f1", 0);
- RegisterValue f1_value;
- DataExtractor f1_data;
- reg_ctx->ReadRegister(f1_info, f1_value);
- DataExtractor *copy_from_extractor = nullptr;
- WritableDataBufferSP data_sp(new DataBufferHeap(8, 0));
- DataExtractor return_ext(
- data_sp, target_byte_order,
- target->GetArchitecture().GetAddressByteSize());
-
- if (target_byte_order == eByteOrderLittle) {
- copy_from_extractor = &f0_data;
- copy_from_extractor->CopyByteOrderedData(
- offset, 4, data_sp->GetBytes(), 4, target_byte_order);
- f1_value.GetData(f1_data);
- copy_from_extractor = &f1_data;
- copy_from_extractor->CopyByteOrderedData(
- offset, 4, data_sp->GetBytes() + 4, 4, target_byte_order);
- } else {
- copy_from_extractor = &f0_data;
- copy_from_extractor->CopyByteOrderedData(
- offset, 4, data_sp->GetBytes() + 4, 4, target_byte_order);
- f1_value.GetData(f1_data);
- copy_from_extractor = &f1_data;
- copy_from_extractor->CopyByteOrderedData(
- offset, 4, data_sp->GetBytes(), 4, target_byte_order);
- }
- value.GetScalar() = (double)return_ext.GetDouble(&offset);
- break;
- }
- case 32: {
- static_assert(sizeof(float) == sizeof(uint32_t));
- value.GetScalar() = (float)f0_data.GetFloat(&offset);
- break;
- }
- }
- } else {
- // not handled yet
+ switch (*bit_width) {
+ default:
return return_valobj_sp;
+ case 64: {
+ static_assert(sizeof(double) == sizeof(uint64_t));
+ const RegisterInfo *f1_info = reg_ctx->GetRegisterInfoByName("f1", 0);
+ RegisterValue f1_value;
+ DataExtractor f1_data;
+ reg_ctx->ReadRegister(f1_info, f1_value);
+ DataExtractor *copy_from_extractor = nullptr;
+ WritableDataBufferSP data_sp(new DataBufferHeap(8, 0));
+ DataExtractor return_ext(
+ data_sp, target_byte_order,
+ target->GetArchitecture().GetAddressByteSize());
+
+ if (target_byte_order == eByteOrderLittle) {
+ copy_from_extractor = &f0_data;
+ copy_from_extractor->CopyByteOrderedData(
+ offset, 4, data_sp->GetBytes(), 4, target_byte_order);
+ f1_value.GetData(f1_data);
+ copy_from_extractor = &f1_data;
+ copy_from_extractor->CopyByteOrderedData(
+ offset, 4, data_sp->GetBytes() + 4, 4, target_byte_order);
+ } else {
+ copy_from_extractor = &f0_data;
+ copy_from_extractor->CopyByteOrderedData(
+ offset, 4, data_sp->GetBytes() + 4, 4, target_byte_order);
+ f1_value.GetData(f1_data);
+ copy_from_extractor = &f1_data;
+ copy_from_extractor->CopyByteOrderedData(
+ offset, 4, data_sp->GetBytes(), 4, target_byte_order);
+ }
+ value.GetScalar() = (double)return_ext.GetDouble(&offset);
+ break;
+ }
+ case 32: {
+ static_assert(sizeof(float) == sizeof(uint32_t));
+ value.GetScalar() = (float)f0_data.GetFloat(&offset);
+ break;
+ }
}
}
} else {
diff --git a/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp b/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp
index 0d25faef1c659..944bc66bafeb1 100644
--- a/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp
+++ b/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp
@@ -426,7 +426,6 @@ Status ABISysV_ppc::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
Thread *thread = frame_sp->GetThread().get();
bool is_signed;
- bool is_complex;
RegisterContext *reg_ctx = thread->GetRegisterContext().get();
@@ -453,38 +452,33 @@ Status ABISysV_ppc::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
"We don't support returning longer than 64 bit "
"integer values at present.");
}
- } else if (compiler_type.IsFloatingPointType(is_complex)) {
- if (is_complex)
- error = Status::FromErrorString(
- "We don't support returning complex values at present");
- else {
- std::optional<uint64_t> bit_width =
- llvm::expectedToOptional(compiler_type.GetBitSize(frame_sp.get()));
- if (!bit_width) {
- error = Status::FromErrorString("can't get type size");
+ } else if (compiler_type.IsRealFloatingPointType()) {
+ std::optional<uint64_t> bit_width =
+ llvm::expectedToOptional(compiler_type.GetBitSize(frame_sp.get()));
+ if (!bit_width) {
+ error = Status::FromErrorString("can't get type size");
+ return error;
+ }
+ if (*bit_width <= 64) {
+ DataExtractor data;
+ Status data_error;
+ size_t num_bytes = new_value_sp->GetData(data, data_error);
+ if (data_error.Fail()) {
+ error = Status::FromErrorStringWithFormat(
+ "Couldn't convert return value to raw data: %s",
+ data_error.AsCString());
return error;
}
- if (*bit_width <= 64) {
- DataExtractor data;
- Status data_error;
- size_t num_bytes = new_value_sp->GetData(data, data_error);
- if (data_error.Fail()) {
- error = Status::FromErrorStringWithFormat(
- "Couldn't convert return value to raw data: %s",
- data_error.AsCString());
- return error;
- }
- unsigned char buffer[16];
- ByteOrder byte_order = data.GetByteOrder();
+ unsigned char buffer[16];
+ ByteOrder byte_order = data.GetByteOrder();
- data.CopyByteOrderedData(0, num_bytes, buffer, 16, byte_order);
- set_it_simple = true;
- } else {
- // FIXME - don't know how to do 80 bit long doubles yet.
- error = Status::FromErrorString(
- "We don't support returning float values > 64 bits at present");
- }
+ data.CopyByteOrderedData(0, num_bytes, buffer, 16, byte_order);
+ set_it_simple = true;
+ } else {
+ // FIXME - don't know how to do 80 bit long doubles yet.
+ error = Status::FromErrorString(
+ "We don't support returning float values > 64 bits at present");
}
}
diff --git a/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp b/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp
index 63357618774d4..0895cd3d75df6 100644
--- a/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp
+++ b/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp
@@ -309,7 +309,6 @@ Status ABISysV_ppc64::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
Thread *thread = frame_sp->GetThread().get();
bool is_signed;
- bool is_complex;
RegisterContext *reg_ctx = thread->GetRegisterContext().get();
@@ -338,38 +337,33 @@ Status ABISysV_ppc64::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
"We don't support returning longer than 64 bit "
"integer values at present.");
}
- } else if (compiler_type.IsFloatingPointType(is_complex)) {
- if (is_complex)
- error = Status::FromErrorString(
- "We don't support returning complex values at present");
- else {
- std::optional<uint64_t> bit_width =
- llvm::expectedToOptional(compiler_type.GetBitSize(frame_sp.get()));
- if (!bit_width) {
- error = Status::FromErrorString("can't get size of type");
+ } else if (compiler_type.IsRealFloatingPointType()) {
+ std::optional<uint64_t> bit_width =
+ llvm::expectedToOptional(compiler_type.GetBitSize(frame_sp.get()));
+ if (!bit_width) {
+ error = Status::FromErrorString("can't get size of type");
+ return error;
+ }
+ if (*bit_width <= 64) {
+ DataExtractor data;
+ Status data_error;
+ size_t num_bytes = new_value_sp->GetData(data, data_error);
+ if (data_error.Fail()) {
+ error = Status::FromErrorStringWithFormat(
+ "Couldn't convert return value to raw data: %s",
+ data_error.AsCString());
return error;
}
- if (*bit_width <= 64) {
- DataExtractor data;
- Status data_error;
- size_t num_bytes = new_value_sp->GetData(data, data_error);
- if (data_error.Fail()) {
- error = Status::FromErrorStringWithFormat(
- "Couldn't convert return value to raw data: %s",
- data_error.AsCString());
- return error;
- }
- unsigned char buffer[16];
- ByteOrder byte_order = data.GetByteOrder();
+ unsigned char buffer[16];
+ ByteOrder byte_order = data.GetByteOrder();
- data.CopyByteOrderedData(0, num_bytes, buffer, 16, byte_order);
- set_it_simple = true;
- } else {
- // FIXME - don't know how to do 80 bit long doubles yet.
- error = Status::FromErrorString(
- "We don't support returning float values > 64 bits at present");
- }
+ data.CopyByteOrderedData(0, num_bytes, buffer, 16, byte_order);
+ set_it_simple = true;
+ } else {
+ // FIXME - don't know how to do 80 bit long doubles yet.
+ error = Status::FromErrorString(
+ "We don't support returning float values > 64 bits at present");
}
}
diff --git a/lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp b/lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp
index d209980d65589..dce905f08aa5f 100644
--- a/lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp
+++ b/lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp
@@ -642,18 +642,14 @@ ABISysV_riscv::GetReturnValueObjectSimple(Thread &thread,
value, ConstString(""));
}
// Floating point return type.
- else if (type_flags & eTypeIsFloat) {
- bool is_complex = false;
-
- if (compiler_type.IsFloatingPointType(is_complex) &&
- !(type_flags & eTypeIsVector) && !is_complex) {
- const uint32_t arch_fp_flags =
- arch.GetFlags() & ArchSpec::eRISCV_float_abi_mask;
- return_valobj_sp = GetValObjFromFPRegs(
- thread, reg_ctx, machine, arch_fp_flags, type_flags, byte_size);
- return return_valobj_sp;
- }
+ else if (compiler_type.IsRealFloatingPointType()) {
+ const uint32_t arch_fp_flags =
+ arch.GetFlags() & ArchSpec::eRISCV_float_abi_mask;
+ return_valobj_sp = GetValObjFromFPRegs(
+ thread, reg_ctx, machine, arch_fp_flags, type_flags, byte_size);
+ return return_valobj_sp;
}
+
// Unsupported return type.
return return_valobj_sp;
}
diff --git a/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp b/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp
index 301c3b309ffd5..594bf27f7e0b7 100644
--- a/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp
+++ b/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp
@@ -422,42 +422,37 @@ Status ABISysV_s390x::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
"We don't support returning longer than 64 bit "
"integer values at present.");
}
- } else if (compiler_type.IsFloatingPointType(is_complex)) {
- if (is_complex)
- error = Status::FromErrorString(
- "We don't support returning complex values at present");
- else {
- std::optional<uint64_t> bit_width =
- llvm::expectedToOptional(compiler_type.GetBitSize(frame_sp.get()));
- if (!bit_width) {
- error = Status::FromErrorString("can't get type size");
+ } else if (compiler_type.IsRealFloatingPointType()) {
+ std::optional<uint64_t> bit_width =
+ llvm::expectedToOptional(compiler_type.GetBitSize(frame_sp.get()));
+ if (!bit_width) {
+ error = Status::FromErrorString("can't get type size");
+ return error;
+ }
+ if (*bit_width <= 64) {
+ const RegisterInfo *f0_info = reg_ctx->GetRegisterInfoByName("f0", 0);
+ RegisterValue f0_value;
+ DataExtractor data;
+ Status data_error;
+ size_t num_bytes = new_value_sp->GetData(data, data_error);
+ if (data_error.Fail()) {
+ error = Status::FromErrorStringWithFormat(
+ "Couldn't convert return value to raw data: %s",
+ data_error.AsCString());
return error;
}
- if (*bit_width <= 64) {
- const RegisterInfo *f0_info = reg_ctx->GetRegisterInfoByName("f0", 0);
- RegisterValue f0_value;
- DataExtractor data;
- Status data_error;
- size_t num_bytes = new_value_sp->GetData(data, data_error);
- if (data_error.Fail()) {
- error = Status::FromErrorStringWithFormat(
- "Couldn't convert return value to raw data: %s",
- data_error.AsCString());
- return error;
- }
- unsigned char buffer[8];
- ByteOrder byte_order = data.GetByteOrder();
+ unsigned char buffer[8];
+ ByteOrder byte_order = data.GetByteOrder();
- data.CopyByteOrderedData(0, num_bytes, buffer, 8, byte_order);
- f0_value.SetBytes(buffer, 8, byte_order);
- reg_ctx->WriteRegister(f0_info, f0_value);
- set_it_simple = true;
- } else {
- // FIXME - don't know how to do long doubles yet.
- error = Status::FromErrorString(
- "We don't suppo...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/178904
More information about the lldb-commits
mailing list