From a9f04ed6fd4ce8ea5b01cbafec2181a2d69a2783 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 27 Mar 2026 11:45:36 +0100 Subject: [PATCH v11 1/3] meson: Make room for C++-only warning flags for MSVC Refactor the MSVC warning option handling to have a list of common flags and lists of flags specific to C and C++. --- meson.build | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/meson.build b/meson.build index ea31cbce9c0..42b0a9a6a71 100644 --- a/meson.build +++ b/meson.build @@ -2293,27 +2293,42 @@ endforeach if cc.get_id() == 'msvc' - cflags_warn += [ + msvc_common_warning_flags = [ + # Disable warnings in system headers + '/external:anglebrackets', + '/external:W0', + # Warnings to disable: - # from /W1: - '/wd4090', # different 'modifier' qualifiers # from /W2: '/wd4244', # conversion from 'type1' to 'type2', 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] + ] + + msvc_c_warning_flags = [ + # Warnings to disable: + # from /W1: + '/wd4090', # different 'modifier' qualifiers # 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] '/w24255', # 'function' : no function prototype given: converting '()' to '(void)' [like -Wstrict-prototypes] + ] - # Disable warnings in system headers - '/external:anglebrackets', - '/external:W0', + msvc_cxx_warning_flags = [ ] + cflags_warn += msvc_common_warning_flags + cflags_warn += msvc_c_warning_flags + + cxxflags_warn += msvc_common_warning_flags + cxxflags_warn += msvc_cxx_warning_flags + cppflags += [ '/DWIN32', '/DWINDOWS', -- 2.53.0