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]
> 

Reply via email to