@@ -1550,7 +1550,6 @@ ValueObjectSP ABISysV_arm::GetReturnValueObjectImpl(
15501550
15511551 bool is_signed;
15521552 bool is_complex;
1553- uint32_t float_count;
15541553 bool is_vfp_candidate = false ;
15551554 uint8_t vfp_count = 0 ;
15561555 uint8_t vfp_byte_size = 0 ;
@@ -1634,8 +1633,9 @@ ValueObjectSP ABISysV_arm::GetReturnValueObjectImpl(
16341633 if (!GetReturnValuePassedInMemory (thread, reg_ctx, *byte_size, value))
16351634 return return_valobj_sp;
16361635 }
1637- } else if (compiler_type.IsFloatingPointType (float_count, is_complex)) {
1638- if (float_count == 1 && !is_complex) {
1636+ } else if (compiler_type.IsFloatingPointType (is_complex)) {
1637+ // Vector types are handled above.
1638+ if (!is_complex) {
16391639 switch (*bit_width) {
16401640 default :
16411641 return return_valobj_sp;
@@ -1681,7 +1681,7 @@ ValueObjectSP ABISysV_arm::GetReturnValueObjectImpl(
16811681 break ;
16821682 }
16831683 }
1684- } else if (is_complex && float_count == 2 ) {
1684+ } else if (is_complex) {
16851685 if (IsArmHardFloat (thread)) {
16861686 is_vfp_candidate = true ;
16871687 vfp_byte_size = *byte_size / 2 ;
@@ -1709,8 +1709,9 @@ ValueObjectSP ABISysV_arm::GetReturnValueObjectImpl(
17091709 vfp_count = (*base_byte_size == 8 ? homogeneous_count
17101710 : homogeneous_count * 2 );
17111711 }
1712- } else if (base_type.IsFloatingPointType (float_count, is_complex)) {
1713- if (float_count == 1 && !is_complex) {
1712+ } else if (base_type.IsFloatingPointType (is_complex)) {
1713+ // Vector types are handled above.
1714+ if (!is_complex) {
17141715 is_vfp_candidate = true ;
17151716 if (base_byte_size)
17161717 vfp_byte_size = *base_byte_size;
@@ -1727,10 +1728,10 @@ ValueObjectSP ABISysV_arm::GetReturnValueObjectImpl(
17271728 base_type = compiler_type.GetFieldAtIndex (index, name, nullptr ,
17281729 nullptr , nullptr );
17291730
1730- if (base_type.IsFloatingPointType (float_count, is_complex)) {
1731+ if (base_type.IsFloatingPointType (is_complex)) {
17311732 std::optional<uint64_t > base_byte_size =
17321733 llvm::expectedToOptional (base_type.GetByteSize (&thread));
1733- if (float_count == 2 && is_complex) {
1734+ if (is_complex) {
17341735 if (index != 0 && base_byte_size &&
17351736 vfp_byte_size != *base_byte_size)
17361737 break ;
@@ -1841,7 +1842,6 @@ Status ABISysV_arm::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
18411842 Thread *thread = frame_sp->GetThread ().get ();
18421843
18431844 bool is_signed;
1844- uint32_t count;
18451845 bool is_complex;
18461846
18471847 RegisterContext *reg_ctx = thread->GetRegisterContext ().get ();
@@ -1884,7 +1884,7 @@ Status ABISysV_arm::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
18841884 " We don't support returning longer than 64 bit "
18851885 " integer values at present." );
18861886 }
1887- } else if (compiler_type.IsFloatingPointType (count, is_complex)) {
1887+ } else if (compiler_type.IsFloatingPointType (is_complex)) {
18881888 if (is_complex)
18891889 error = Status::FromErrorString (
18901890 " We don't support returning complex values at present" );
0 commit comments