On Tue, May 22, 2012 at 12:26 PM, Paolo Carlini <paolo.carl...@oracle.com> wrote: > On 05/16/2012 11:43 AM, Richard Guenther wrote: >> >> On Wed, May 16, 2012 at 9:19 AM, Paolo Bonzini<bonz...@gnu.org> wrote: >>> >>> OFFSET_TYPE is treated as an integral type for the purpose of conversion >>> in fold-const.c. However, the GIMPLE verifier disagrees, leading to >>> verification errors when a cast from boolean to offset type is >>> gimplified. >>> >>> Bootstrapped/regtested x86_64-pc-linux-gnu, ok for mainline? > > I see this patch is now installed and I'm afraid is causing regressions in > the c++ testsuite: today I see many unexpected fails having to do with > pointers to members.
Can't be this patch though, it only lets more things pass the verifier. Unless - /* Allow conversion from integer to offset type and vice versa. */ + /* Allow conversion from integral to offset type and vice versa. */ if ((TREE_CODE (lhs_type) == OFFSET_TYPE - && TREE_CODE (rhs1_type) == INTEGER_TYPE) + && INTEGRAL_TYPE_P (rhs1_type)) || (TREE_CODE (lhs_type) == INTEGER_TYPE - && TREE_CODE (rhs1_type) == OFFSET_TYPE)) + && INTEGRAL_TYPE_P (rhs1_type))) the latter looks like a typo - INTEGRAL_TYPE_P should be used for lhs_type, not rhs1_type. Richard. > Thanks, > Paolo.