> The sizetype operand should always be sign-extended even if it is > unsigned. Really? How do you do foo[-1] then? Remember - this is a problem *because* sizetype is smaller than a pointer, so it matters which way you extend. You can't rely on type-wrapping to make large unsigned constants work as negatives.