typeck.c (cp_pointer_int_sum): Complete inner type which is used later by size_in_bytes().

2002-03-01  Michael Matz  <matz@suse.de>

        * typeck.c (cp_pointer_int_sum): Complete inner type which is
        used later by size_in_bytes().

From-SVN: r50197
This commit is contained in:
Michael Matz 2002-03-01 13:50:28 +00:00 committed by Michael Matz
parent b41a6f95b4
commit bfba94bddc
2 changed files with 13 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2002-03-01 Michael Matz <matz@suse.de>
* typeck.c (cp_pointer_int_sum): Complete inner type which is
used later by size_in_bytes().
2002-03-01 Phil Edwards <pme@gcc.gnu.org>
* cp-tree.h: Require __GNUC__ to be #defined.

View File

@ -4076,8 +4076,14 @@ cp_pointer_int_sum (resultcode, ptrop, intop)
enum tree_code resultcode;
register tree ptrop, intop;
{
if (!complete_type_or_else (TREE_TYPE (ptrop), ptrop))
return error_mark_node;
tree res_type = TREE_TYPE (ptrop);
/* pointer_int_sum() uses size_in_bytes() on the TREE_TYPE(res_type)
in certain circumstance (when it's valid to do so). So we need
to make sure it's complete. We don't need to check here, if we
can actually complete it at all, as those checks will be done in
pointer_int_sum() anyway. */
complete_type (TREE_TYPE (res_type));
return pointer_int_sum (resultcode, ptrop, fold (intop));
}