[Tarantool-patches] [PATCH luajit 13/19] ARM: Fix GCC 7 -Wimplicit-fallthrough warnings.

Maxim Kokryashkin m.kokryashkin at tarantool.org
Tue Aug 15 16:25:51 MSK 2023


Hi, Sergey!
Thanks for the patch!
LGTM as trivial, except for a few nits, regarding the commit message.
On Wed, Aug 09, 2023 at 06:36:02PM +0300, Sergey Kaplun via Tarantool-patches wrote:
> From: Mike Pall <mike>
> 
> (cherry-picked from commit 9bd5a722bee2ee2c5b159a89937778b81be49915)
> 
> This patch adds the `/* fallthrough */` comments elsewhere, where it was
Typo: s/where it was/where they were/
> missing for the ARM build, so the `-Wimplicit-fallthrough` [1] warning
> is trigerred.
Typo: s/is trigerred/is not triggered/
> 
> Also, this commits sets the correspoinding flag in the
Typo: s/commits/commit/
Typo: s/in the/in/
> <cmake/SetTargetFlags.cmake>.
> 
> [1]: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wimplicit-fallthrough
> 
> Sergey Kaplun:
> * added the description for the commit
> 
> Part of tarantool/tarantool#8825
> ---
>  cmake/SetTargetFlags.cmake | 6 ++++++
>  src/lj_asm.c               | 2 +-
>  src/lj_asm_arm.h           | 4 ++--
>  3 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/cmake/SetTargetFlags.cmake b/cmake/SetTargetFlags.cmake
> index 3b9e481d..d309989e 100644
> --- a/cmake/SetTargetFlags.cmake
> +++ b/cmake/SetTargetFlags.cmake
> @@ -8,6 +8,12 @@
>  
>  include(CheckUnwindTables)
>  
> +# Clang does not recognize comment markers.
> +if (CMAKE_C_COMPILER_ID STREQUAL "GNU"
> +    AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "7.1")
> +  AppendFlags(TARGET_C_FLAGS -Wimplicit-fallthrough)
> +endif()
> +
>  if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
>    set(BUILDVM_MODE machasm)
>  else() # Linux and FreeBSD.
> diff --git a/src/lj_asm.c b/src/lj_asm.c
> index 2d570bb9..25b96264 100644
> --- a/src/lj_asm.c
> +++ b/src/lj_asm.c
> @@ -2176,8 +2176,8 @@ static void asm_setup_regsp(ASMState *as)
>  #if LJ_SOFTFP
>      case IR_MIN: case IR_MAX:
>        if ((ir+1)->o != IR_HIOP) break;
> -      /* fallthrough */
>  #endif
> +    /* fallthrough */
>      /* C calls evict all scratch regs and return results in RID_RET. */
>      case IR_SNEW: case IR_XSNEW: case IR_NEWREF: case IR_BUFPUT:
>        if (REGARG_NUMGPR < 3 && as->evenspill < 3)
> diff --git a/src/lj_asm_arm.h b/src/lj_asm_arm.h
> index 6ae6e2f2..2894e5c9 100644
> --- a/src/lj_asm_arm.h
> +++ b/src/lj_asm_arm.h
> @@ -979,7 +979,7 @@ static ARMIns asm_fxloadins(IRIns *ir)
>    case IRT_I16: return ARMI_LDRSH;
>    case IRT_U16: return ARMI_LDRH;
>    case IRT_NUM: lua_assert(!LJ_SOFTFP); return ARMI_VLDR_D;
> -  case IRT_FLOAT: if (!LJ_SOFTFP) return ARMI_VLDR_S;
> +  case IRT_FLOAT: if (!LJ_SOFTFP) return ARMI_VLDR_S;  /* fallthrough */
>    default: return ARMI_LDR;
>    }
>  }
> @@ -990,7 +990,7 @@ static ARMIns asm_fxstoreins(IRIns *ir)
>    case IRT_I8: case IRT_U8: return ARMI_STRB;
>    case IRT_I16: case IRT_U16: return ARMI_STRH;
>    case IRT_NUM: lua_assert(!LJ_SOFTFP); return ARMI_VSTR_D;
> -  case IRT_FLOAT: if (!LJ_SOFTFP) return ARMI_VSTR_S;
> +  case IRT_FLOAT: if (!LJ_SOFTFP) return ARMI_VSTR_S;  /* fallthrough */
>    default: return ARMI_STR;
>    }
>  }
> -- 
> 2.41.0
> 


More information about the Tarantool-patches mailing list