It was thus said that the Great ben via cctalk once stated:
>
> I don't know about the VAX,but my gripe is the x86 and the 68000 don't
> automaticaly promote smaller data types to larger ones. What little
> programming I have done was in C never cared about that detail.
> Now I can see way it is hard to generate good code in C when all the
> CPU's are brain dead in that aspect.
>
> char *foo, long bar;
> ... foobar = *foo + bar
> is r1 = foo
> r3 = * r1
> r2 = bar
> sex byte r3
> sex word r3
> r4 = r3 + r2
> foobar = r3
> what I want is
> bar = * foo + bar
> nice easy coding.
What CPUs did it correctly? And how did they handle signed vs. unsigned
promotion?
unsigned char *ufoo;
unsigned long ubar;
ufoobar = *ufoo + ubar;
signed char *foo;
signed long bar;
foobar = *foo + bar;
-spc