summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2025-10-28 22:11:26 +0100
committerPeter Eisentraut <peter@eisentraut.org>2025-11-06 07:56:02 +0100
commit2307cfe31621d6077d9357aa7d6f4d8406c66b2d (patch)
tree0466e5d46835f8e76b839ae7c282efd0d8fd2c79
parent01a985c3c4fb138ac2753e1210eed084e6bd181f (diff)
MSVC: Improve warning options set
The previous code had a set of warnings to disable on MSVC. But some of these weren't actually enabled by default anyway, only in higher MSVC warning levels (/W, maps to meson warning_level). I rearranged this so that it is clearer in what MSVC warning level a warning would have been enabled. Furthermore, sort them numerically within the levels. Moreover, we can add a few warning types to the default set, to get a similar set of warnings that we get by default with gcc or clang (the equivalents of -Wswitch and -Wformat). Reviewed-by: Bryan Green <dbryan.green@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/bf060644-47ff-441b-97cf-c685d0827757@eisentraut.org
-rw-r--r--meson.build18
1 files changed, 13 insertions, 5 deletions
diff --git a/meson.build b/meson.build
index 0f61ff6a700..00c46d40071 100644
--- a/meson.build
+++ b/meson.build
@@ -2147,13 +2147,21 @@ endforeach
if cc.get_id() == 'msvc'
cflags_warn += [
- '/wd4018', # signed/unsigned mismatch
- '/wd4244', # conversion from 'type1' to 'type2', possible loss of data
- '/wd4273', # inconsistent DLL linkage
- '/wd4101', # unreferenced local variable
- '/wd4102', # unreferenced label
+ # Warnings to disable:
+ # from /W1:
'/wd4090', # different 'modifier' qualifiers
+ '/wd4273', # inconsistent DLL linkage
+ # from /W2:
+ '/wd4244', # conversion from 'type1' to 'type2', possible loss of data
+ # from /W3:
+ '/wd4018', # signed/unsigned mismatch
+ '/wd4101', # unreferenced local variable [like -Wunused-variable, but there is no "unused" attribute, so too noisy]
'/wd4267', # conversion from 'size_t' to 'type', possible loss of data
+
+ # Additional warnings to enable:
+ '/w24062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled [like -Wswitch]
+ '/w24102', # unreferenced label [like -Wunused-label]
+ '/w24777', # 'function' : format string 'string' requires an argument of type 'type1', but variadic argument number has type 'type2' [like -Wformat]
]
cppflags += [