Re: casting operand to proper type in BlockIdGetBlockNumber
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Zhihong Yu <zyu@yugabyte.com>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2022-03-03T17:29:37Z
Lists: pgsql-hackers
Hi, On 2022-03-03 12:13:40 -0500, Tom Lane wrote: > Zhihong Yu <zyu@yugabyte.com> writes: > > On Thu, Mar 3, 2022 at 8:24 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > >> Oh, I misread this as a compile-time warning, but it must be from ASAN. > >> Was the test case one of your own, or just our normal regression tests? > > > The Jenkins test is ported from contrib/postgres_fdw/sql/postgres_fdw.sql - > > so theoretically PG would see the same error for clang12 on Alma. > > Hmph. I tried enabling -fsanitize=undefined here, and I get some > complaints about passing null pointers to memcmp and the like, but > nothing about this shift (tested with clang 12.0.1 on RHEL8 as well > as clang 13.0.0 on Fedora 35). We should fix these passing-null-pointer cases... > What compiler switches are being used exactly? FWIW, I've successfully used: -Og -fsanitize=alignment,undefined -fno-sanitize=nonnull-attribute -fno-sanitize=float-cast-overflow -fno-sanitize-recover=all Need to manually add -ldl, because -fsanitize breaks our dl test (it uses dlopen, but not dlsym). Was planning to submit a fix for that... Greetings, Andres Freund
Commits
-
Tighten overflow checks in tidin().
- f7ea240aa749 15.0 landed
-
Remove some pointless code in block.h.
- 8134fe4ad80a 15.0 landed
-
Fix bogus casting in BlockIdGetBlockNumber().
- 18c04d157456 10.21 landed
- 566e1c04df52 11.16 landed
- 4b0696b36e5a 12.11 landed
- 97031f440485 13.7 landed
- 5c9d17e94c5c 14.3 landed
- 0fbdfaf79d0b 15.0 landed
-
Clean up assorted failures under clang's -fsanitize=undefined checks.
- f727b6ea8f3b 12.11 landed
- f2087e26ebf1 11.16 landed
- cfbe87bd6f64 10.21 landed
- b0bc196e52e6 14.3 landed
- 46ab07ffda9d 15.0 landed
- 1a027e6b7bdf 13.7 landed