Aurelien Buhrig <aurelien.buhrig.gcc@xxxxxxxxx> writes: > Thanks, but when I do so, gcc ICE in build2_stat, at tree.c:3112, > while compiling libgcc2 (__gcc_bcmp) during ivopt pass. > __gcc_bcmp uses a size_t as loop iv. > > Here is the failed assert: > if ((code == MINUS_EXPR || code == PLUS_EXPR || code == MULT_EXPR) > && arg0 && arg1 && tt && POINTER_TYPE_P (tt)) > gcc_assert (TREE_CODE (arg0) == INTEGER_CST && TREE_CODE (arg1) == > INTEGER_CST); > > while I have > code == PLUS_EXPR, > TREE_CODE (arg0) = SSA_NAME and TREE_CODE(arg1) == NOP_EXPR. > > > I have no such pb when I define size_t as an unsigned int (HImode), > which is different from my Pmode=PSI mode (32bits). > > Any idea where it may come from ? Bad macro definition in my target.h ? You would have to look at the caller of build2_stat to see what is happening here. It seems a bit odd that changing the size of SIZE_TYPE causes something to be POINTER_TYPE_P. Ian