This is the mail archive of the
gdb-testers@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Ignore warning about using different types of enums in switch
- From: sergiodj+buildbot at sergiodj dot net
- To: gdb-testers at sourceware dot org
- Date: Fri, 29 Dec 2017 23:54:05 -0500
- Subject: [binutils-gdb] Ignore warning about using different types of enums in switch
- Authentication-results: sourceware.org; auth=none
*** TEST RESULTS FOR COMMIT 0436426c7f7798b8eb4b48be9867495da8ef28f0 ***
Author: Simon Marchi <simon.marchi@ericsson.com>
Branch: master
Commit: 0436426c7f7798b8eb4b48be9867495da8ef28f0
Ignore warning about using different types of enums in switch
When compiling with clang 6, I see a bunch of warnings like this:
/home/emaisin/src/binutils-gdb/gdb/amd64-linux-tdep.c:1427:8: error: comparison of two values with different enumeration types in switch statement ('enum amd64_syscall' and 'amd
64_x32_syscall') [-Werror,-Wenum-compare-switch]
case amd64_x32_sys_move_pages:
^~~~~~~~~~~~~~~~~~~~~~~~
In this switch, we indeed use enumerators of both types
amd64_x32_syscall and amd64_syscall. This is done on purpose, and the
enum values are chosen so that they are complementary.
I think it's still a useful warning, so I chose to ignore just that
particular case.
gdb/ChangeLog:
* common/diagnostics.h
(DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES): New macro.
* amd64-linux-tdep.c (amd64_canonicalize_syscall): Use it.