Re: [HACKERS] inet data type regression test fails
| От | Tatsuo Ishii |
|---|---|
| Тема | Re: [HACKERS] inet data type regression test fails |
| Дата | |
| Msg-id | 199902221409.XAA00832@ext16.sra.co.jp обсуждение |
| Ответ на | inet data type regression test fails (Tatsuo Ishii <t-ishii@sra.co.jp>) |
| Список | pgsql-hackers |
> The inet regression test has been failed on my LinuxPPC. While > investigating the reason, I found a code that doesn't work on > LinuxPPC. From network_broadcast() in utils/adt/network.c: > > int addr = htonl(ntohl(ip_v4addr(ip)) | (0xffffffff >> ip_bits(ip))); > > Here ip_bits() returns from (unsigned char)0 to 32. My question is: > what is the correct result of (0xffffffff >> ip_bits())? I should have said that: what is the correct result of (0xffffffff >> ip_bits()) if ip_bits() == 32? > 1. 0x0 > 2. 0xffffffff (actually does nothing) > > LinuxPPC is 1. FreeBSD and Solaris are 2. network_broadcast() seems to > expect 2. My guess is shifting over 32bit against a 32bit integer is > not permitted and the result is platform depedent. If this would true, > it could be said that network_broadcast() has a portabilty > problem. Comments? > --- > Tatsuo Ishii >
В списке pgsql-hackers по дате отправления: