I am not sure why we need the U postfix in the first place. For literal like ~0xFFF, the compiler should automatically sign-extends to our expected size. Personally, I prefer to using ([u]intptr_t) ~0xFFF, which is more portable. So we don't have to deal with U, UL, i64. It is possible to use 32-bit address mode on 64-bit alpha, and the address is sign extened, not zero extended.
Hong > Passes on 64-bit Solaris. (And 32-bit Linux.) Probably more correct > regardless, as longs are almost always the same size as > pointers, whereas > ints aren't. > > --- ../parrot/Configure.pl Wed Jan 2 22:53:29 2002 > +++ ./Configure.pl Wed Jan 2 22:53:29 2002 > @@ -141,11 +141,11 @@ > debugging => $opt_debugging, > rm_f => 'rm -f', > rm_rf => 'rm -rf', > - stacklow => '(~0xfff)U', > - intlow => '(~0xfff)U', > - numlow => '(~0xfff)U', > - strlow => '(~0xfff)U', > - pmclow => '(~0xfff)U', > + stacklow => '(~0xfff)UL', > + intlow => '(~0xfff)UL', > + numlow => '(~0xfff)UL', > + strlow => '(~0xfff)UL', > + pmclow => '(~0xfff)UL', > make => $Config{make}, > make_set_make => $Config{make_set_make}, > > @@ -701,7 +701,7 @@ > my $vector = unpack("b*", pack("V", $_)); > my $offset = rindex($vector, "1")+1; > my $mask = 2**$offset - 1; > - push @returns, "(~0x".sprintf("%x", $mask)."U)"; > + push @returns, "(~0x".sprintf("%x", $mask)."UL)"; > } > > return @returns; > > > > -- > Bryan C. Warnock > [EMAIL PROTECTED] >