postgres.git / summary / log / commit / refs

commit    bccfc73acde97cdb76ba36558ed394e89d3c808b
Author:   Peter Eisentraut <peter@eisentraut.org>
Date:     Wed Mar 25 14:03:30 2026 +0000

    Disable warnings in system headers in MSVC
    
    This is similar to the standard behavior in GCC.  For MSVC, we set all
    headers in angle brackets to be considered system headers.  (GCC goes
    by path, not include style.)
    
    The required option is available since VS 2017.  (Before VS 2019
    version 16.10, the additional option /experimental:external is
    required, but per discussion in [0], we effectively require 16.11, so
    this shouldn't be a problem.)
    
    [0]: https://www.postgresql.org/message-id/04ab76a3-186c-4a37-8076-e6882ebf9d43%40eisentraut.org
    
    Then, we can remove one workaround for avoiding a warning from a
    system header.  (And some warnings to be enabled in the future could
    benefit from this.)
    
    Reviewed-by: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
    Discussion: https://www.postgresql.org/message-id/flat/aa73q1aT0A3/vke/%40ip-10-97-1-34.eu-west-3.compute.internal


meson.build | 4 ++++ src/backend/port/win32/crashdump.c | 14 -------------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/meson.build b/meson.build index 0a181909fab..79cc7b4e758 100644 --- a/meson.build +++ b/meson.build @@ -2309,6 +2309,10 @@ if cc.get_id() == 'msvc' '/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] + + # Disable warnings in system headers + '/external:anglebrackets', + '/external:W0', ] cppflags += [ diff --git a/src/backend/port/win32/crashdump.c b/src/backend/port/win32/crashdump.c index 05790ba6ac1..0efeb9a9236 100644 --- a/src/backend/port/win32/crashdump.c +++ b/src/backend/port/win32/crashdump.c @@ -38,21 +38,7 @@ #include "postgres.h" -/* - * Some versions of the MS SDK contain "typedef enum { ... } ;" which the MS - * compiler quite sanely complains about. Well done, Microsoft. - * This pragma disables the warning just while we include the header. - * The pragma is known to work with all (as at the time of writing) supported - * versions of MSVC. - */ -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable : 4091) -#endif #include <dbghelp.h> -#ifdef _MSC_VER -#pragma warning(pop) -#endif /* * Much of the following code is based on CodeProject and MSDN examples, [parent: 5282bf535e47]