Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stadtx_hash.h: Silence -Wimplicit-fallthrough compilation warnings #16206

Closed
p5pRT opened this issue Oct 22, 2017 · 11 comments
Closed

stadtx_hash.h: Silence -Wimplicit-fallthrough compilation warnings #16206

p5pRT opened this issue Oct 22, 2017 · 11 comments

Comments

@p5pRT
Copy link

p5pRT commented Oct 22, 2017

Migrated from rt.perl.org#132342 (status was 'resolved')

Searchable as RT132342$

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2017

From @jkeenan

When building perl with gcc-7.2, many new compiler warnings are thrown.
During and after the 2017 Perl 5 Core Hackathon, Lukas Mai and Yves
Orton committed code to silence most of these warnings. Today I built
with gcc-7.2 on Ubuntu Linux 16.04 LTS for the first time. The warnings
I got are displayed in this smoke test report​:

http​://perl5.test-smoke.org/report/58805

Those warnings come from these files​:

#####
stadtx_hash.h
op.c
cpan/Compress-Raw-Bzip2/bzip2-src/decompress.c
cpan/Compress-Raw-Zlib/zlib-src/infback.c
cpan/Compress-Raw-Zlib/zlib-src/inflate.c
cpan/Encode/Unicode/Unicode.xs
cpan/Scalar-List-Utils/ListUtil.xs
#####

The patch attached silences the 'warning​: this statement may fall
through [-Wimplicit-fallthrough=]' warnings in stadtx_hash.h. Those
warnings appear in most of the other files, but those are maintained
upstream (for which I will later supply patches).

The following warning remains during a gcc-7.2 build​:

#####
op.c​: In function ‘S_fold_constants’​:
op.c​:4448​:34​: warning​: argument ‘o’ might be clobbered by ‘longjmp’ or
‘vfork’ [-Wclobbered]
  S_fold_constants(pTHX_ OP *const o)
  ^
#####

I don't yet know how to address that one.

Please review the patch.

Thank you very much.
Jim Keenan

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2017

From @jkeenan

0001-Prevent-warnings-when-building-with-gcc-7.2.patch
From 915d1758bac3d1a7e1b7ec6c570ef70fce99d279 Mon Sep 17 00:00:00 2001
From: James E Keenan <jkeenan@cpan.org>
Date: Sat, 21 Oct 2017 21:27:18 -0400
Subject: [PATCH] Prevent warnings when building with gcc-7.2.

Guard against:  "warning: this statement may fall through" warnings.
---
 stadtx_hash.h | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/stadtx_hash.h b/stadtx_hash.h
index a54af2e..3b5dfb6 100644
--- a/stadtx_hash.h
+++ b/stadtx_hash.h
@@ -198,29 +198,39 @@ STADTX_STATIC_INLINE U64 stadtx_hash_with_state(
             v0= ROTR64(v0, 17) ^ v1;
             v1= ROTR64(v1, 53) + v0;
             key += 8;
+            /* FALLTHROUGH */
             case 2:
             v0 += U8TO64_LE(key) * STADTX_K3_U64;
             v0= ROTR64(v0, 17) ^ v1;
             v1= ROTR64(v1, 53) + v0;
             key += 8;
+            /* FALLTHROUGH */
             case 1:
             v0 += U8TO64_LE(key) * STADTX_K3_U64;
             v0= ROTR64(v0, 17) ^ v1;
             v1= ROTR64(v1, 53) + v0;
             key += 8;
+            /* FALLTHROUGH */
             case 0:
             default: break;
         }
         switch ( len & 0x7 ) {
             case 7: v0 += (U64)key[6] << 32;
+            /* FALLTHROUGH */
             case 6: v1 += (U64)key[5] << 48;
+            /* FALLTHROUGH */
             case 5: v0 += (U64)key[4] << 16;
+            /* FALLTHROUGH */
             case 4: v1 += (U64)U8TO32_LE(key);
                     break;
+            /* FALLTHROUGH */
             case 3: v0 += (U64)key[2] << 48;
+            /* FALLTHROUGH */
             case 2: v1 += (U64)U8TO16_LE(key);
                     break;
+            /* FALLTHROUGH */
             case 1: v0 += (U64)key[0];
+            /* FALLTHROUGH */
             case 0: v1 = ROTL64(v1, 32) ^ 0xFF;
                     break;
         }
@@ -253,25 +263,37 @@ STADTX_STATIC_INLINE U64 stadtx_hash_with_state(
 
         switch ( len >> 3 ) {
             case 3: v0 += ((U64)U8TO64_LE(key) * STADTX_K2_U32); key += 8; v0= ROTL64(v0,57) ^ v3;
+            /* FALLTHROUGH */
             case 2: v1 += ((U64)U8TO64_LE(key) * STADTX_K3_U32); key += 8; v1= ROTL64(v1,63) ^ v2;
+            /* FALLTHROUGH */
             case 1: v2 += ((U64)U8TO64_LE(key) * STADTX_K4_U32); key += 8; v2= ROTR64(v2,47) + v0;
+            /* FALLTHROUGH */
             case 0: v3 = ROTR64(v3,11) - v1;
+            /* FALLTHROUGH */
         }
         v0 ^= (len+1) * STADTX_K3_U64;
         switch ( len & 0x7 ) {
             case 7: v1 += (U64)key[6];
+            /* FALLTHROUGH */
             case 6: v2 += (U64)U8TO16_LE(key+4);
                     v3 += (U64)U8TO32_LE(key);
                     break;
+            /* FALLTHROUGH */
             case 5: v1 += (U64)key[4];
+            /* FALLTHROUGH */
             case 4: v2 += (U64)U8TO32_LE(key);
                     break;
+            /* FALLTHROUGH */
             case 3: v3 += (U64)key[2];
+            /* FALLTHROUGH */
             case 2: v1 += (U64)U8TO16_LE(key);
                     break;
+            /* FALLTHROUGH */
             case 1: v2 += (U64)key[0];
+            /* FALLTHROUGH */
             case 0: v3 = ROTL64(v3, 32) ^ 0xFF;
                     break;
+            /* FALLTHROUGH */
         }
 
         v1 -= v2;
-- 
2.7.4

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2017

From @jkeenan

Summary of my perl5 (revision 5 version 27 subversion 6) configuration​:
  Derived from​: ae0af6e
  Platform​:
  osname=linux
  osvers=4.4.0-97-generic
  archname=x86_64-linux
  uname='linux zareason 4.4.0-97-generic #120-ubuntu smp tue sep 19 17​:28​:18 utc 2017 x86_64 x86_64 x86_64 gnulinux '
  config_args='-des -Dusedevel -Dcc=gcc-7'
  hint=recommended
  useposix=true
  d_sigaction=define
  useithreads=undef
  usemultiplicity=undef
  use64bitint=define
  use64bitall=define
  uselongdouble=undef
  usemymalloc=n
  default_inc_excludes_dot=define
  bincompat5005=undef
  Compiler​:
  cc='gcc-7'
  ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
  optimize='-O2'
  cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
  ccversion=''
  gccversion='7.2.0'
  gccosandvers=''
  intsize=4
  longsize=8
  ptrsize=8
  doublesize=8
  byteorder=12345678
  doublekind=3
  d_longlong=define
  longlongsize=8
  d_longdbl=define
  longdblsize=16
  longdblkind=3
  ivtype='long'
  ivsize=8
  nvtype='double'
  nvsize=8
  Off_t='off_t'
  lseeksize=8
  alignbytes=8
  prototype=undef
  Linker and Libraries​:
  ld='gcc-7'
  ldflags =' -fstack-protector-strong -L/usr/local/lib'
  libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /lib64 /usr/lib64
  libs=-lpthread -lnsl -ldb -ldl -lm -lcrypt -lutil -lc
  perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
  libc=libc-2.23.so
  so=so
  useshrplib=false
  libperl=libperl.a
  gnulibc_version='2.23'
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs
  dlext=so
  d_dlsymun=undef
  ccdlflags='-Wl,-E'
  cccdlflags='-fPIC'
  lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector-strong'

Characteristics of this binary (from libperl)​:
  Compile-time options​:
  HAS_TIMES
  PERLIO_LAYERS
  PERL_COPY_ON_WRITE
  PERL_DONT_CREATE_GVSV
  PERL_MALLOC_WRAP
  PERL_OP_PARENT
  PERL_PRESERVE_IVUV
  PERL_USE_DEVEL
  USE_64_BIT_ALL
  USE_64_BIT_INT
  USE_LARGE_FILES
  USE_LOCALE
  USE_LOCALE_COLLATE
  USE_LOCALE_CTYPE
  USE_LOCALE_NUMERIC
  USE_LOCALE_TIME
  USE_PERLIO
  USE_PERL_ATOF
  Locally applied patches​:
  uncommitted-changes
  Built under linux
  Compiled at Oct 21 2017 21​:24​:53
  %ENV​:
  PERL2DIR="/home/jkeenan/gitwork/perl2"
  PERLBREW_BASHRC_VERSION="0.78"
  PERLBREW_HOME="/home/jkeenan/.perlbrew"
  PERLBREW_MANPATH="/home/jkeenan/perl5/perlbrew/perls/perl-5.26.0/man"
  PERLBREW_PATH="/home/jkeenan/perl5/perlbrew/bin​:/home/jkeenan/perl5/perlbrew/perls/perl-5.26.0/bin"
  PERLBREW_PERL="perl-5.26.0"
  PERLBREW_ROOT="/home/jkeenan/perl5/perlbrew"
  PERLBREW_VERSION="0.78"
  PERL_WORKDIR="/home/jkeenan/gitwork/perl"
  @​INC​:
  lib
  /usr/local/lib/perl5/site_perl/5.27.6/x86_64-linux
  /usr/local/lib/perl5/site_perl/5.27.6
  /usr/local/lib/perl5/5.27.6/x86_64-linux
  /usr/local/lib/perl5/5.27.6

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2017

From @jkeenan

On Sun, 22 Oct 2017 02​:25​:29 GMT, jkeenan@​pobox.com wrote​:

When building perl with gcc-7.2, many new compiler warnings are thrown.
During and after the 2017 Perl 5 Core Hackathon, Lukas Mai and Yves
Orton committed code to silence most of these warnings. Today I built
with gcc-7.2 on Ubuntu Linux 16.04 LTS for the first time. The warnings
I got are displayed in this smoke test report​:

http​://perl5.test-smoke.org/report/58805

Those warnings come from these files​:

#####
stadtx_hash.h
op.c
cpan/Compress-Raw-Bzip2/bzip2-src/decompress.c
cpan/Compress-Raw-Zlib/zlib-src/infback.c
cpan/Compress-Raw-Zlib/zlib-src/inflate.c
cpan/Encode/Unicode/Unicode.xs
cpan/Scalar-List-Utils/ListUtil.xs
#####

The patch attached silences the 'warning​: this statement may fall
through [-Wimplicit-fallthrough=]' warnings in stadtx_hash.h. Those
warnings appear in most of the other files, but those are maintained
upstream (for which I will later supply patches).

The following warning remains during a gcc-7.2 build​:

#####
op.c​: In function ‘S_fold_constants’​:
op.c​:4448​:34​: warning​: argument ‘o’ might be clobbered by ‘longjmp’ or
‘vfork’ [-Wclobbered]
S_fold_constants(pTHX_ OP *const o)
^
#####

I don't yet know how to address that one.

Please review the patch.

Thank you very much.
Jim Keenan

Code review by mauke++ on #p5p indicated that some of my FALLTHROUGH guards were superfluous. Providing supplementary patch. Please review.

Thank you very much.

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2017

From @jkeenan

0002-Remove-superfluous-FALLTHROUGH-guards.patch
From 4fd1c57d681355f0e0bb51ead65c9552fbaf325a Mon Sep 17 00:00:00 2001
From: James E Keenan <jkeenan@cpan.org>
Date: Sun, 22 Oct 2017 07:48:43 -0400
Subject: [PATCH 2/2] Remove superfluous FALLTHROUGH guards.

Per code review by mauke++ on #p5p.
---
 stadtx_hash.h | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/stadtx_hash.h b/stadtx_hash.h
index 3b5dfb6..c755018 100644
--- a/stadtx_hash.h
+++ b/stadtx_hash.h
@@ -223,12 +223,10 @@ STADTX_STATIC_INLINE U64 stadtx_hash_with_state(
             /* FALLTHROUGH */
             case 4: v1 += (U64)U8TO32_LE(key);
                     break;
-            /* FALLTHROUGH */
             case 3: v0 += (U64)key[2] << 48;
             /* FALLTHROUGH */
             case 2: v1 += (U64)U8TO16_LE(key);
                     break;
-            /* FALLTHROUGH */
             case 1: v0 += (U64)key[0];
             /* FALLTHROUGH */
             case 0: v1 = ROTL64(v1, 32) ^ 0xFF;
@@ -278,22 +276,18 @@ STADTX_STATIC_INLINE U64 stadtx_hash_with_state(
             case 6: v2 += (U64)U8TO16_LE(key+4);
                     v3 += (U64)U8TO32_LE(key);
                     break;
-            /* FALLTHROUGH */
             case 5: v1 += (U64)key[4];
             /* FALLTHROUGH */
             case 4: v2 += (U64)U8TO32_LE(key);
                     break;
-            /* FALLTHROUGH */
             case 3: v3 += (U64)key[2];
             /* FALLTHROUGH */
             case 2: v1 += (U64)U8TO16_LE(key);
                     break;
-            /* FALLTHROUGH */
             case 1: v2 += (U64)key[0];
             /* FALLTHROUGH */
             case 0: v3 = ROTL64(v3, 32) ^ 0xFF;
                     break;
-            /* FALLTHROUGH */
         }
 
         v1 -= v2;
-- 
2.7.4

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2017

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2017

From @jkeenan

On Sun, 22 Oct 2017 12​:08​:01 GMT, jkeenan wrote​:

On Sun, 22 Oct 2017 02​:25​:29 GMT, jkeenan@​pobox.com wrote​:

When building perl with gcc-7.2, many new compiler warnings are
thrown.
During and after the 2017 Perl 5 Core Hackathon, Lukas Mai and Yves
Orton committed code to silence most of these warnings. Today I
built
with gcc-7.2 on Ubuntu Linux 16.04 LTS for the first time. The
warnings
I got are displayed in this smoke test report​:

http​://perl5.test-smoke.org/report/58805

Those warnings come from these files​:

#####
stadtx_hash.h
op.c
cpan/Compress-Raw-Bzip2/bzip2-src/decompress.c
cpan/Compress-Raw-Zlib/zlib-src/infback.c
cpan/Compress-Raw-Zlib/zlib-src/inflate.c
cpan/Encode/Unicode/Unicode.xs
cpan/Scalar-List-Utils/ListUtil.xs
#####

The patch attached silences the 'warning​: this statement may fall
through [-Wimplicit-fallthrough=]' warnings in stadtx_hash.h. Those
warnings appear in most of the other files, but those are maintained
upstream (for which I will later supply patches).

The following warning remains during a gcc-7.2 build​:

#####
op.c​: In function ‘S_fold_constants’​:
op.c​:4448​:34​: warning​: argument ‘o’ might be clobbered by ‘longjmp’
or
‘vfork’ [-Wclobbered]
S_fold_constants(pTHX_ OP *const o)
^
#####

I don't yet know how to address that one.

Please review the patch.

Thank you very much.
Jim Keenan

Code review by mauke++ on #p5p indicated that some of my FALLTHROUGH
guards were superfluous. Providing supplementary patch. Please
review.

Thank you very much.

Patches were applied to blead in commit b2733f8 and 6437ba6.

Most of the implicit-fallthrough warnings are gone. However, when I subsequently built with gcc-7 on a *threaded build*, there were still some of those warnings​:

#####
$ grep -nE '^op\.c' make.6.gcc-7.output.txt
3​:op.c​: In function ‘S_finalize_op’​:
4​:op.c​:2586​:5​: warning​: this statement may fall through [-Wimplicit-fallthrough=]
7​:op.c​:2590​:5​: note​: here
10​:op.c​: In function ‘S_fold_constants’​:
11​:op.c​:4448​:34​: warning​: argument ‘o’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
456​:op.c​: In function ‘S_finalize_op’​:
457​:op.c​:2586​:5​: warning​: this statement may fall through [-Wimplicit-fallthrough=]
460​:op.c​:2590​:5​: note​: here
463​:op.c​: In function ‘S_fold_constants’​:
464​:op.c​:4448​:34​: warning​: argument ‘o’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
#####

Needs further investigation.

Thank you very much.
--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2017

From @mauke

On Sun, 22 Oct 2017 06​:32​:38 -0700, jkeenan wrote​:

Most of the implicit-fallthrough warnings are gone. However, when I
subsequently built with gcc-7 on a *threaded build*, there were still
some of those warnings​:

#####
$ grep -nE '^op\.c' make.6.gcc-7.output.txt
3​:op.c​: In function ‘S_finalize_op’​:
4​:op.c​:2586​:5​: warning​: this statement may fall through [-Wimplicit-
fallthrough=]
7​:op.c​:2590​:5​: note​: here
10​:op.c​: In function ‘S_fold_constants’​:
11​:op.c​:4448​:34​: warning​: argument ‘o’ might be clobbered by ‘longjmp’
or ‘vfork’ [-Wclobbered]
456​:op.c​: In function ‘S_finalize_op’​:
457​:op.c​:2586​:5​: warning​: this statement may fall through [-Wimplicit-
fallthrough=]
460​:op.c​:2590​:5​: note​: here
463​:op.c​: In function ‘S_fold_constants’​:
464​:op.c​:4448​:34​: warning​: argument ‘o’ might be clobbered by
‘longjmp’ or ‘vfork’ [-Wclobbered]
#####

Needs further investigation.

I believe the fallthrough warning is fixed in commit 146930d.

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2017

From @jkeenan

On Sun, 22 Oct 2017 14​:21​:58 GMT, mauke- wrote​:

On Sun, 22 Oct 2017 06​:32​:38 -0700, jkeenan wrote​:

Most of the implicit-fallthrough warnings are gone. However, when I
subsequently built with gcc-7 on a *threaded build*, there were still
some of those warnings​:

#####
$ grep -nE '^op\.c' make.6.gcc-7.output.txt
3​:op.c​: In function ‘S_finalize_op’​:
4​:op.c​:2586​:5​: warning​: this statement may fall through [-Wimplicit-
fallthrough=]
7​:op.c​:2590​:5​: note​: here
10​:op.c​: In function ‘S_fold_constants’​:
11​:op.c​:4448​:34​: warning​: argument ‘o’ might be clobbered by
‘longjmp’
or ‘vfork’ [-Wclobbered]
456​:op.c​: In function ‘S_finalize_op’​:
457​:op.c​:2586​:5​: warning​: this statement may fall through [-
Wimplicit-
fallthrough=]
460​:op.c​:2590​:5​: note​: here
463​:op.c​: In function ‘S_fold_constants’​:
464​:op.c​:4448​:34​: warning​: argument ‘o’ might be clobbered by
‘longjmp’ or ‘vfork’ [-Wclobbered]
#####

Needs further investigation.

I believe the fallthrough warning is fixed in commit
146930d.

Yes -- but unfortunately I just spotted this​:

#####
gcc-7 -c -DPERL_CORE -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -std=c89 -O2 -Wall -Werror=declaration-after-statement -Werror=pointer-arith -Wextra -Wc++-compat -Wwrite-strings sv.c
In file included from perl.h​:3473​:0,
  from sv.c​:32​:
sv.c​: In function ‘S_sv_dup_common’​:
sv.h​:2155​:6​: warning​: this statement may fall through [-Wimplicit-fallthrough=]
  (SvTYPE(sv) == SVt_REGEXP \
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  || (SvFLAGS(sv) & (SVTYPEMASK|SVpgv_GP|SVf_FAKE)) \
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  == (SVt_PVLV|SVf_FAKE))
  ~~~~~~~~~~~~~~~~~~~~~~~
sv.c​:14296​:7​: note​: in expansion of macro ‘isREGEXP’
  if (isREGEXP(sstr)) goto duprex;
  ^~~~~~~~
sv.c​:14297​:6​: note​: here
  case SVt_PVGV​:
  ^~~~
#####

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2017

From @jkeenan

On Sun, 22 Oct 2017 14​:57​:00 GMT, jkeenan wrote​:

On Sun, 22 Oct 2017 14​:21​:58 GMT, mauke- wrote​:

On Sun, 22 Oct 2017 06​:32​:38 -0700, jkeenan wrote​:

Most of the implicit-fallthrough warnings are gone. However, when
I
subsequently built with gcc-7 on a *threaded build*, there were
still
some of those warnings​:

#####
$ grep -nE '^op\.c' make.6.gcc-7.output.txt
3​:op.c​: In function ‘S_finalize_op’​:
4​:op.c​:2586​:5​: warning​: this statement may fall through [-
Wimplicit-
fallthrough=]
7​:op.c​:2590​:5​: note​: here
10​:op.c​: In function ‘S_fold_constants’​:
11​:op.c​:4448​:34​: warning​: argument ‘o’ might be clobbered by
‘longjmp’
or ‘vfork’ [-Wclobbered]
456​:op.c​: In function ‘S_finalize_op’​:
457​:op.c​:2586​:5​: warning​: this statement may fall through [-
Wimplicit-
fallthrough=]
460​:op.c​:2590​:5​: note​: here
463​:op.c​: In function ‘S_fold_constants’​:
464​:op.c​:4448​:34​: warning​: argument ‘o’ might be clobbered by
‘longjmp’ or ‘vfork’ [-Wclobbered]
#####

Needs further investigation.

I believe the fallthrough warning is fixed in commit
146930d.

Yes -- but unfortunately I just spotted this​:

#####
gcc-7 -c -DPERL_CORE -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-
aliasing -pipe -fstack-protector-strong -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -std=c89 -O2 -Wall
-Werror=declaration-after-statement -Werror=pointer-arith -Wextra
-Wc++-compat -Wwrite-strings sv.c
In file included from perl.h​:3473​:0,
from sv.c​:32​:
sv.c​: In function ‘S_sv_dup_common’​:
sv.h​:2155​:6​: warning​: this statement may fall through [-Wimplicit-
fallthrough=]
(SvTYPE(sv) == SVt_REGEXP \

|| \(SvFLAGS\(sv\) & \(SVTYPEMASK|SVpgv\_GP|SVf\_FAKE\)\)        \\
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
== \(SVt\_PVLV|SVf\_FAKE\)\)
~~~~~~~~~~~~~~~~~~~~~~~
sv\.c&#8203;:14296&#8203;:7&#8203;: note&#8203;: in expansion of macro ‘isREGEXP’
   if \(isREGEXP\(sstr\)\) goto duprex;
       ^~~~~~~~
sv\.c&#8203;:14297&#8203;:6&#8203;: note&#8203;: here
      case SVt\_PVGV&#8203;:
      ^~~~
\#\#\#\#\#

And mauke++ has taken care of this one as well​:

#####
commit d158997
Author​: Lukas Mai <l.mai@​web.de>
Date​: Sun Oct 22 17​:03​:55 2017 +0200

  get rid of "implicit fallthrough" warnings with gcc 7
#####

I think we've now eliminated this warning from non-threaded and threaded builds on Linux with gcc-7 -- at least from those files that are p5p-maintained. I will prepare patches for files that are cpan-upstream, but we don't need to keep this ticket open for that.

Marking ticket Resolved.

Thank you very much.
--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2017

@jkeenan - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant