some extra warnings from MSVC
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2026-04-11T10:37:15Z
Lists: pgsql-hackers
Attachments
- 0001-MSVC-Add-warning-for-missing-function-declaration.patch (text/plain) patch 0001
- 0002-MSVC-Add-missing-include.patch (text/plain) patch 0002
- 0003-Fix-64-bit-shifting-in-dynahash.c.patch (text/plain) patch 0003
I ran the MSVC build with the warning level set one level higher than the default (that is, meson -Dwarning_level=2, which actually maps to what MSVC considers its level 3), and it gave two new warnings that should be fixed: ../src/backend/utils/error/elog.c(1255): warning C4013: 'wchar2char' undefined; assuming extern returning int ../src/backend/utils/hash/dynahash.c(1767): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) These are both in code that is new in PG19. The first one is from commit 65707ed9afc (Add backtrace support for Windows). This would be an error in gcc (from C99 on); it's kind of incredible that MSVC doesn't even warn about this by default. I propose to add this warning category to the default set. (Second thought: For consistency, make this an error, with '/we4013' instead of '/w24013'.) The second one is from commit 13b935cd521 (Change dynahash.c and hsearch.h to use int64 instead of long). I don't have a patch here to include this in the default warning set, mainly because it doesn't appear to map to any gcc warning option, but maybe we should add it anyway, since it can catch this kind of 4-byte-long-on-Windows issue.
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix 64-bit shifting in dynahash.c
- 9018c7d37bb4 19 (unreleased) landed
-
MSVC: Turn missing function declaration into an error
- 1a51ec16db7a 19 (unreleased) landed
-
Add missing include
- c86d2ccdb355 19 (unreleased) landed
-
Add backtrace support for Windows using DbgHelp API
- 65707ed9afc9 19 (unreleased) cited
-
Change dynahash.c and hsearch.h to use int64 instead of long
- 13b935cd5217 19 (unreleased) cited