* cp-lang.c (cxx_get_alias_set): Correct logic for a base type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74968
138bc75d-0d04-0410-961f-
82ee72b054a4
+2003-12-23 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/13387
+ * cp-lang.c (cxx_get_alias_set): Correct logic for a base type.
+
2003-12-22 Mark Mitchell <mark@codesourcery.com>
* decl.c (start_function): Do not check
static HOST_WIDE_INT
cxx_get_alias_set (tree t)
{
- if (CLASS_TYPE_P (t) && TYPE_CONTEXT (t) && CLASS_TYPE_P (TYPE_CONTEXT (t))
+ if (TREE_CODE (t) == RECORD_TYPE
+ && TYPE_CONTEXT (t) && CLASS_TYPE_P (TYPE_CONTEXT (t))
&& CLASSTYPE_AS_BASE (TYPE_CONTEXT (t)) == t)
/* The base variant of a type must be in the same alias set as the
complete type. */
- t = TYPE_CONTEXT (t);
+ return get_alias_set (TYPE_CONTEXT (t));
if (/* It's not yet safe to use alias sets for some classes in C++. */
!ok_to_generate_alias_set_for_type (t)