------- 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