From: | Kris Jurka <books(at)ejurka(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-committers(at)postgresql(dot)org |
Subject: | Re: pgsql-server: Fix TAS assembly stuff for Solaris/386. |
Date: | 2004-09-24 16:32:37 |
Message-ID: | Pine.BSO.4.56.0409241120290.9037@leary.csoft.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
On Fri, 24 Sep 2004, Tom Lane wrote:
> Kris Jurka <books(at)ejurka(dot)com> writes:
> > UINT64CONST produces these in a number of places:
> > "xlog.c", line 552: warning: constant promoted to unsigned long long
>
> > it likes either ##ULL or unadorned. The problem is we're taking a
> > constant larger than long long and explicitly saying it's a long long.
>
> No other machine we use thinks it's larger than long long --- are you
> sure about that? If that is the problem, why does the message use the
> word "promoted" and not, say, "truncated"?
Well, it's not really truncated it just overflows long long.
Looking at the following code, the warning is only produced for the c2
constant.
#define ULL(x) (x##ULL)
#define LL(x) (x##LL)
void f() {
unsigned long long c1 = ULL(0xFFFFFFFFFFFFFFFF);
unsigned long long c2 = LL(0xFFFFFFFFFFFFFFFF);
unsigned long long c3 = 0xFFFFFFFFFFFFFFFF;
unsigned long long c4 = ULL(0x1111111111111111);
unsigned long long c5 = LL(0x1111111111111111);
unsigned long long c6 = 0x1111111111111111;
}
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2004-09-24 16:57:42 | Re: pgsql-server: Fix TAS assembly stuff for Solaris/386. |
Previous Message | Marc G. Fournier | 2004-09-24 14:22:32 | Re: pginstaller - CVSROOT: Update address for CVS |