This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: SIZE_TYPE
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@google.com>:
> Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com> 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
>