diff --git a/libcxxabi/src/private_typeinfo.cpp b/libcxxabi/src/private_typeinfo.cpp index 2f631041f74c..01a1d2603b18 100644 --- a/libcxxabi/src/private_typeinfo.cpp +++ b/libcxxabi/src/private_typeinfo.cpp @@ -591,10 +591,9 @@ __base_class_type_info::has_unambiguous_public_base(__dynamic_cast_info* info, // .. and reset the pointer. adjustedPtr = nullptr; } - __base_type->has_unambiguous_public_base( - info, - static_cast(adjustedPtr) + offset_to_base, - (__offset_flags & __public_mask) ? path_below : not_public_path); + __base_type->has_unambiguous_public_base( + info, reinterpret_cast(reinterpret_cast(adjustedPtr) + offset_to_base), + (__offset_flags & __public_mask) ? path_below : not_public_path); } void