private_typeinfo: propagate static flags in vmi search_above_dst method

Patch by Ryan Prichard

Propagate the found_our_static_ptr and found_any_static_type flags from
__vmi_class_type_info::search_above_dst to its caller.

Fixes PR33425 and PR33487

Reviewed as https://reviews.llvm.org/D36446

llvm-svn: 332763
This commit is contained in:
Eric Fiselier 2018-05-18 20:39:57 +00:00
parent da71639cdb
commit 77eaa59cd2

View File

@ -1181,6 +1181,8 @@ __vmi_class_type_info::search_above_dst(__dynamic_cast_info* info,
info->found_our_static_ptr = false;
info->found_any_static_type = false;
p->search_above_dst(info, dst_ptr, current_ptr, path_below, use_strcmp);
found_our_static_ptr |= info->found_our_static_ptr;
found_any_static_type |= info->found_any_static_type;
if (++p < e)
{
do
@ -1210,6 +1212,8 @@ __vmi_class_type_info::search_above_dst(__dynamic_cast_info* info,
info->found_our_static_ptr = false;
info->found_any_static_type = false;
p->search_above_dst(info, dst_ptr, current_ptr, path_below, use_strcmp);
found_our_static_ptr |= info->found_our_static_ptr;
found_any_static_type |= info->found_any_static_type;
} while (++p < e);
}
// Restore flags