This is the mail archive of the
mailing list for the GCC project.
Re: Question on gimplify.c:create_tmp_var
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: dberlin at dberlin dot org
- Cc: gcc at gcc dot gnu dot org
- Date: Sun, 6 Jun 04 20:52:33 EDT
- Subject: Re: Question on gimplify.c:create_tmp_var
I didn't check what they did with looking inside the chain, only that
they did look inside the chains.
But of course that's the question.
I looked again at the case where I ran into the VIEW_CONVERT_EXPR and it
wasn't even one of those cases, but instead an array case where one side was
constrained and the other wasn't.
Note that even though the route has "lhs" in its name, the case in question
is on the RHS (it's compiling line 358 of the Ada file a-chahan.adb).
I just don't see how it's possible to *not* keep VIEW_CONVERT_EXPR in the
reference chain. If you don't, they have no choice but to make copies and
these are variable-sized arrays. Even if we can somehow eliminate all the
cases where the compiler puts it there, it's also there from an explicit
Unchecked_Conversion instantiated by the user and we can't have a copy of
data their either (for one thing, the types may be "limited" and the
languages doesn't allow copying them).