This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Semantics of MODIFY_EXPR with CONSTRUCTOR rhs
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: rth at redhat dot com
- Cc: gcc at gcc dot gnu dot org
- Date: Mon, 2 Aug 04 17:36:49 EDT
- Subject: Re: Semantics of MODIFY_EXPR with CONSTRUCTOR rhs
Thanks for doing all this so quickly! I was willing to do it, you know ...
I suspect the failure due to variable-sized temporaries that you saw
has to do with a think-o in the loop that initialized the elements --
it should have recursed for nested constructors rather than creating a
new <MODIFY_EXPR <obj> <CONSTRUCTOR>> statement.
Could well be.
As far as I can tell from examining the gimple dump, this appears to
fix c52010a.ada. That's not very conclusive, however, since it
doesn't excercise any of the tricky bits. Can you point to, or
create, a test case that does do direct and indirect aggregate member
initialization in one of these constructors?
If that ACATS test doesn't, I'm sure others in the same series do.
I'll apply this patch and do another run. I also want to cehck that
it doesn't trigger the variable-size problem (compiling g-debuti.adb),
but I don't think it does since it doesn't make a temporary unless
there's a conflicting reference.