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: r50198
This commit is contained in:
Michael Matz 2002-03-01 13:52:31 +00:00 committed by Michael Matz
parent 21956ee220
commit 69ef166432
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 (build_init): Remove prototype.

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));
}