From 749175bc53a29a514fb3249246402186649f391e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Thu, 21 Dec 2017 14:11:45 +0100 Subject: [PATCH] fallthrough comments for gcc 7 --- inst/include/Rcpp/internal/wrap.h | 3 ++ inst/include/Rcpp/macros/unroll.h | 76 +++++++++++++++---------------- 2 files changed, 41 insertions(+), 38 deletions(-) diff --git a/inst/include/Rcpp/internal/wrap.h b/inst/include/Rcpp/internal/wrap.h index 3d41d55bb..0c3b10fda 100644 --- a/inst/include/Rcpp/internal/wrap.h +++ b/inst/include/Rcpp/internal/wrap.h @@ -128,10 +128,13 @@ namespace Rcpp { switch (size - i) { case 3: start[i] = first[i]; i++; + // fallthrough case 2: start[i] = first[i]; i++; + // fallthrough case 1: start[i] = first[i]; i++; + // fallthrough case 0: default: {} diff --git a/inst/include/Rcpp/macros/unroll.h b/inst/include/Rcpp/macros/unroll.h index 38931cb88..bd1e99d87 100644 --- a/inst/include/Rcpp/macros/unroll.h +++ b/inst/include/Rcpp/macros/unroll.h @@ -44,46 +44,46 @@ switch (n - i){ \ } -#define RCPP_LOOP_UNROLL(TARGET,SOURCE) \ -R_xlen_t __trip_count = n >> 2 ; \ -R_xlen_t i = 0 ; \ -for ( ; __trip_count > 0 ; --__trip_count) { \ - TARGET[i] = SOURCE[i] ; i++ ; \ - TARGET[i] = SOURCE[i] ; i++ ; \ - TARGET[i] = SOURCE[i] ; i++ ; \ - TARGET[i] = SOURCE[i] ; i++ ; \ -} \ -switch (n - i){ \ - case 3: \ - TARGET[i] = SOURCE[i] ; i++ ; \ - case 2: \ - TARGET[i] = SOURCE[i] ; i++ ; \ - case 1: \ - TARGET[i] = SOURCE[i] ; i++ ; \ - case 0: \ - default: \ - {} \ +#define RCPP_LOOP_UNROLL(TARGET,SOURCE) \ +R_xlen_t __trip_count = n >> 2 ; \ +R_xlen_t i = 0 ; \ +for ( ; __trip_count > 0 ; --__trip_count) { \ + TARGET[i] = SOURCE[i] ; i++ ; \ + TARGET[i] = SOURCE[i] ; i++ ; \ + TARGET[i] = SOURCE[i] ; i++ ; \ + TARGET[i] = SOURCE[i] ; i++ ; \ +} \ +switch (n - i){ \ + case 3: \ + TARGET[i] = SOURCE[i] ; i++ ; /* fallthrough */ \ + case 2: \ + TARGET[i] = SOURCE[i] ; i++ ; /* fallthrough */ \ + case 1: \ + TARGET[i] = SOURCE[i] ; i++ ; /* fallthrough */ \ + case 0: \ + default: \ + {} \ } -#define RCPP_LOOP_UNROLL_LHSFUN(TARGET,FUN,SOURCE) \ -R_xlen_t __trip_count = n >> 2 ; \ -R_xlen_t i = 0 ; \ -for ( ; __trip_count > 0 ; --__trip_count) { \ - TARGET[FUN(i)] = SOURCE[i] ; i++ ; \ - TARGET[FUN(i)] = SOURCE[i] ; i++ ; \ - TARGET[FUN(i)] = SOURCE[i] ; i++ ; \ - TARGET[FUN(i)] = SOURCE[i] ; i++ ; \ -} \ -switch (n - i){ \ - case 3: \ - TARGET[FUN(i)] = SOURCE[i] ; i++ ; \ - case 2: \ - TARGET[FUN(i)] = SOURCE[i] ; i++ ; \ - case 1: \ - TARGET[FUN(i)] = SOURCE[i] ; i++ ; \ - case 0: \ - default: \ - {} \ +#define RCPP_LOOP_UNROLL_LHSFUN(TARGET,FUN,SOURCE) \ +R_xlen_t __trip_count = n >> 2 ; \ +R_xlen_t i = 0 ; \ +for ( ; __trip_count > 0 ; --__trip_count) { \ + TARGET[FUN(i)] = SOURCE[i] ; i++ ; \ + TARGET[FUN(i)] = SOURCE[i] ; i++ ; \ + TARGET[FUN(i)] = SOURCE[i] ; i++ ; \ + TARGET[FUN(i)] = SOURCE[i] ; i++ ; \ +} \ +switch (n - i){ \ + case 3: \ + TARGET[FUN(i)] = SOURCE[i] ; i++ ; /* fallthrough */ \ + case 2: \ + TARGET[FUN(i)] = SOURCE[i] ; i++ ; /* fallthrough */ \ + case 1: \ + TARGET[FUN(i)] = SOURCE[i] ; i++ ; /* fallthrough */ \ + case 0: \ + default: \ + {} \ } #endif