Skip to content
  • Simon Marchi's avatar
    Only ignore -Wenum-compare-switch if it exists · cfa27c39
    Simon Marchi authored
    My patch
    
      dwarf2read: Silence -Wenum-compare-switch warning
      132448f8
    
    made some parts of dwarf2read.c ignore warnings about switch using enums
    of different kinds.  What I did not realize was that older Clang
    versions (prior to 6) did not have that warning, and therefore give this
    error:
    
    /home/emaisin/src/binutils-gdb/gdb/dwarf2read.c:24187:7: error: unknown warning group '-Wenum-compare-switch', ignored [-Werror,-Wunknown-pragmas]
          DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES
          ^
    /home/emaisin/src/binutils-gdb/gdb/common/diagnostics.h:42:3: note: expanded from macro 'DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES'
      DIAGNOSTIC_IGNORE ("-Wenum-compare-switch")
      ^
    /home/emaisin/src/binutils-gdb/gdb/common/diagnostics.h:27:3: note: expanded from macro 'DIAGNOSTIC_IGNORE'
      _Pragma (STRINGIFY (GCC diagnostic ignored option))
      ^
    <scratch space>:10:25: note: expanded from here
     GCC diagnostic ignored "-Wenum-compare-switch"
                            ^
    
    Clang has a way to test if it knows about a particular warning.  This
    patch uses that feature to only define
    DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES to something if the
    warning is recognized by the Clang version being used.  I tested
    building dwarf2read.c with clang 4, 5, 6, as well as gcc.
    
    gdb/ChangeLog:
    
    	* common/diagnostics.h
    	(DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES): Only
    	define if the compiler knows about -Wenum-compare-switch.
    cfa27c39
To find the state of this project's repository at the time of any of these versions, check out the tags.