This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix expand_expr/ADDR_EXPR ICE on IA-64
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: jakub at redhat dot com
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 30 Nov 01 07:00:44 EST
- Subject: Re: [PATCH] Fix expand_expr/ADDR_EXPR ICE on IA-64
Ok to commit?
Well, first:
&& (TYPE_ALIGN (TREE_TYPE (TREE_OPERAND (exp, 0)))
> MEM_ALIGN (op0))
+ && COMPLETE_TYPE_P (TREE_TYPE (TREE_OPERAND (exp, 0)))
Insert the new line before the test on TYPE_ALIGN: strictly speaking, it
isn't defined if the type is not complete.
But I'm dubious about this in the first place. MEM_ALIGN should have been
set to the same thing that TYPE_ALIGN was. What else could it have been
set to?
So I think something else is wrong here.
Referencing an object with incomplete type is something that I think we need
to understand better; precisely in which cases can objects of incomplete
type be referenced and what does each such mean?