------- Comment #6 from dberlin at gcc dot gnu dot org  2006-01-20 14:59 -------
Subject: Re:  [4.2 Regression] ice with -g -O2
        -fPIC

Yes, this is an easy bug to fix.

What happens is PRE things it can PRE anything that is just a bunch of
indirect_ref's, but in reality, there is one case of that it can't
handle.

Which is this.

When the INDIRECT_REF's type is an aggregate, it will try to create an
expression that is invalid GIMPLE.

This one is actually not a trivial problem to fix ATM (in this case,
eliminate would need to be changed as well), so it would be best to just
change the can_PRE_operation to have something like:

|| (TREE_CODE (op) == INDIRECT_REF && !AGGREGATE_TYPE_P (TREE_TYPE
(op))))


If someone wants to bootstrap and test that fix before i get to it in
the next week or so, that's fine.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25860

Reply via email to