[libcxxabi] r332763 - private_typeinfo: propagate static flags in vmi search_above_dst method

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Fri May 18 13:39:58 PDT 2018


Author: ericwf
Date: Fri May 18 13:39:57 2018
New Revision: 332763

URL: http://llvm.org/viewvc/llvm-project?rev=332763&view=rev
Log:
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


Modified:
    libcxxabi/trunk/src/private_typeinfo.cpp

Modified: libcxxabi/trunk/src/private_typeinfo.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/src/private_typeinfo.cpp?rev=332763&r1=332762&r2=332763&view=diff
==============================================================================
--- libcxxabi/trunk/src/private_typeinfo.cpp (original)
+++ libcxxabi/trunk/src/private_typeinfo.cpp Fri May 18 13:39:57 2018
@@ -1181,6 +1181,8 @@ __vmi_class_type_info::search_above_dst(
         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(
                 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




More information about the cfe-commits mailing list