[RFA] Fix the clang build
Commit Message
Simon pointed out that gdb would not build with clang, due to the
addition of -Wimplicit-fallthrough. This patch fixes the problem by
using -Wimplicit-fallthrough=3 -- this does not work with clang,
bypassing the issue.
Tested by rebuilding with both gcc and clang; and also by verifying
that -Wimplicit-fallthrough=3 is used in the gcc build.
I will file a follow-up bug to convert the fall-through comments to a
form that can be used by both clang and gcc.
gdb/ChangeLog
2018-05-10 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
* warning.m4 (AM_GDB_WARNINGS): Use -Wimplicit-fallthrough=3.
gdb/gdbserver/ChangeLog
2018-05-10 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
---
gdb/ChangeLog | 5 +++++
gdb/configure | 2 +-
gdb/gdbserver/ChangeLog | 4 ++++
gdb/gdbserver/configure | 2 +-
gdb/warning.m4 | 2 +-
5 files changed, 12 insertions(+), 3 deletions(-)
Comments
On 2018-05-10 10:40, Tom Tromey wrote:
> Simon pointed out that gdb would not build with clang, due to the
> addition of -Wimplicit-fallthrough. This patch fixes the problem by
> using -Wimplicit-fallthrough=3 -- this does not work with clang,
> bypassing the issue.
>
> Tested by rebuilding with both gcc and clang; and also by verifying
> that -Wimplicit-fallthrough=3 is used in the gcc build.
>
> I will file a follow-up bug to convert the fall-through comments to a
> form that can be used by both clang and gcc.
Thanks, that patch is fine with me.
To be clear for those who might not be aware of the mechanism: the
configure script tests each warning flag to see if it's supported by the
current compiler. Since -Wimplicit-fallthrough=3 is not supported by
clang, it won't be included. This means that we won't get the
fallthrough warnings when building with clang. I think it's fine, since
we get them through gcc, so an unintended fallthrough would be found
pretty quickly anyway.
Simon
@@ -15367,7 +15367,7 @@ build_warnings="-Wall -Wpointer-arith \
-Wno-mismatched-tags \
-Wno-error=deprecated-register \
-Wsuggest-override \
--Wimplicit-fallthrough \
+-Wimplicit-fallthrough=3 \
-Wduplicated-cond"
case "${host}" in
@@ -7174,7 +7174,7 @@ build_warnings="-Wall -Wpointer-arith \
-Wno-mismatched-tags \
-Wno-error=deprecated-register \
-Wsuggest-override \
--Wimplicit-fallthrough \
+-Wimplicit-fallthrough=3 \
-Wduplicated-cond"
case "${host}" in
@@ -44,7 +44,7 @@ build_warnings="-Wall -Wpointer-arith \
-Wno-mismatched-tags \
-Wno-error=deprecated-register \
-Wsuggest-override \
--Wimplicit-fallthrough \
+-Wimplicit-fallthrough=3 \
-Wduplicated-cond"
case "${host}" in