It appears this is not used anywhere. Tested on i386-unknown-freebsd10.0. Okay?
Gerald 2014-08-16 Gerald Pfeifer <ger...@pfeifer.com> * class.c (contains_empty_class_p): Remove. Index: gcc/cp/class.c =================================================================== --- gcc/cp/class.c (revision 214083) +++ gcc/cp/class.c (working copy) @@ -208,7 +208,6 @@ splay_tree_key k2); static void warn_about_ambiguous_bases (tree); static bool type_requires_array_cookie (tree); -static bool contains_empty_class_p (tree); static bool base_derived_from (tree, tree); static int empty_base_at_nonzero_offset_p (tree, tree, splay_tree); static tree end_of_base (tree); @@ -7796,35 +7795,6 @@ return CLASSTYPE_EMPTY_P (type); } -/* Returns true if TYPE contains an empty class. */ - -static bool -contains_empty_class_p (tree type) -{ - if (is_empty_class (type)) - return true; - if (CLASS_TYPE_P (type)) - { - tree field; - tree binfo; - tree base_binfo; - int i; - - for (binfo = TYPE_BINFO (type), i = 0; - BINFO_BASE_ITERATE (binfo, i, base_binfo); ++i) - if (contains_empty_class_p (BINFO_TYPE (base_binfo))) - return true; - for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) - if (TREE_CODE (field) == FIELD_DECL - && !DECL_ARTIFICIAL (field) - && is_empty_class (TREE_TYPE (field))) - return true; - } - else if (TREE_CODE (type) == ARRAY_TYPE) - return contains_empty_class_p (TREE_TYPE (type)); - return false; -} - /* Returns true if TYPE contains no actual data, just various possible combinations of empty classes and possibly a vptr. */