Semantics of MODIFY_EXPR with CONSTRUCTOR rhs

Richard Kenner kenner@vlsi1.ultra.nyu.edu
Mon Aug 2 21:34:00 GMT 2004


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.



More information about the Gcc mailing list