From 00be5846e4793b718da19dafec3f4ecf2d6d0692 Mon Sep 17 00:00:00 2001 From: Alan Wu Date: Tue, 19 Oct 2021 16:43:20 -0400 Subject: Fix non RUBY_DEBUG build warnings On non RUBY_DEBUG builds, assert() compiles to nothing and the compiler warns about uninitialized variables in those code paths. Replace those asserts with rb_bug() to fix the warnings and do the assert in all builds. Since yjit_asm_tests.c compiles outside of Ruby, it needed a distinct version of rb_bug(). Also put YJIT_STATS check for function delcaration that is only defined in YJIT_STATS builds. --- yjit_asm.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'yjit_asm.c') diff --git a/yjit_asm.c b/yjit_asm.c index 15da7a37a1..5e433f5ea4 100644 --- a/yjit_asm.c +++ b/yjit_asm.c @@ -78,7 +78,7 @@ x86opnd_t mem_opnd_sib(uint32_t num_bits, x86opnd_t base_reg, x86opnd_t index_re scale_exp = 0; break; default: - assert(false && "scale not one of 1,2,4,8"); + rb_bug("yjit: scale not one of 1,2,4,8"); break; } @@ -466,7 +466,7 @@ static bool rex_needed(x86opnd_t opnd) return (opnd.as.mem.base_reg_no > 7) || (opnd.as.mem.has_idx && opnd.as.mem.idx_reg_no > 7); } - assert (false); + rb_bug("unreachable"); } // Check if an SIB byte is needed to encode this operand @@ -643,7 +643,7 @@ static void cb_write_rm( else if (dsize == 32) mod = 2; else - assert (false); + rb_bug("unreachable"); } // Encode the reg field @@ -726,7 +726,7 @@ static void write_rm_unary( if (opnd.type == OPND_REG || opnd.type == OPND_MEM) opndSize = opnd.num_bits; else - assert (false && "invalid operand"); + rb_bug("yjit: invalid operand"); assert (opndSize == 8 || opndSize == 16 || opndSize == 32 || opndSize == 64); bool szPref = opndSize == 16; @@ -856,7 +856,7 @@ static void cb_write_shift( if (opnd0.type == OPND_REG || opnd0.type == OPND_MEM) opndSize = opnd0.num_bits; else - assert (false && "shift: invalid first operand"); + rb_bug("yjit: shift: invalid first operand"); assert (opndSize == 16 || opndSize == 32 || opndSize == 64); bool szPref = opndSize == 16; -- cgit v1.2.3