------- Comment #6 from jakub at gcc dot gnu dot org 2008-02-15 21:07 ------- The problem is the regimplifying done by lower_omp_1. We have D.NNNN = s; where both of the vars have RECORD_TYPE with TREE_ADDRESSABLE types. lower_omp_1 sees on the right hand side VAR_DECL with DECL_VALUE_EXPR (wi->is_lhs = false, wi->val_only = true), which is replaced with *.omp_data_i->s which doesn't satisfy is_gimple_val predicate lower_regimplify uses and of course the compiler isn't allowed to create temporaries of TREE_ADDRESSABLE types on its own. In this case I believe we need to force the .omp_data_i->s address into a temporary first and then *temp should hopefully satisfy the predicate. Diego, any ideas?
-- jakub at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dnovillo at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35185