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 ? Thanks, Aurélien 2011/10/14 Ian Lance Taylor <iant@xxxxxxxxxx>: > Aurelien Buhrig <aurelien.buhrig.gcc@xxxxxxxxx> writes: > >> What should be the correct setting of SIZE_TYPE for a target whose int >> is HI (and Pmode is PSI) ? >> long unsigned int (DI) or (short) unsigned int ? >> >> Is it only used for size_t ? > > SIZE_TYPE is used for size_t. It's value should normally be the > unsigned integer type which has the same number of bits as the type of a > pointer. > > Ian >