[前][次][番号順一覧][スレッド一覧]

ruby-changes:68856

From: Alan <ko1@a...>
Date: Thu, 21 Oct 2021 08:14:51 +0900 (JST)
Subject: [ruby-changes:68856] d03b7f77d4 (master): Fix GCC warnings

https://git.ruby-lang.org/ruby.git/commit/?id=d03b7f77d4

From d03b7f77d45105bfe613b986bfddaaa6c1de6831 Mon Sep 17 00:00:00 2001
From: Alan Wu <XrXr@u...>
Date: Wed, 31 Mar 2021 18:27:34 -0400
Subject: Fix GCC warnings

Mostly unused and uninitialized warnings here and there
---
 mjit.h         | 6 ++----
 yjit_asm.c     | 2 +-
 yjit_codegen.c | 4 +++-
 yjit_iface.c   | 4 ++--
 yjit_iface.h   | 5 +++++
 5 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/mjit.h b/mjit.h
index 3b28f51d1d..e6bf6be8dc 100644
--- a/mjit.h
+++ b/mjit.h
@@ -141,12 +141,10 @@ mjit_exec_slowpath(rb_execution_context_t *ec, const rb_iseq_t *iseq, struct rb_ https://github.com/ruby/ruby/blob/trunk/mjit.h#L141
 static inline VALUE
 mjit_exec(rb_execution_context_t *ec)
 {
-    const rb_iseq_t *iseq;
-    struct rb_iseq_constant_body *body;
+    const rb_iseq_t *iseq = ec->cfp->iseq;
+    struct rb_iseq_constant_body *body = iseq->body;
 
     if (mjit_call_p || rb_yjit_enabled_p()) {
-        iseq = ec->cfp->iseq;
-        body = iseq->body;
         body->total_calls++;
     }
 
diff --git a/yjit_asm.c b/yjit_asm.c
index 60873bb476..fc8472f077 100644
--- a/yjit_asm.c
+++ b/yjit_asm.c
@@ -175,7 +175,7 @@ void cb_align_pos(codeblock_t* cb, uint32_t multiple) https://github.com/ruby/ruby/blob/trunk/yjit_asm.c#L175
 {
     // Compute the pointer modulo the given alignment boundary
     uint8_t* ptr = &cb->mem_block[cb->write_pos];
-    uint32_t rem = ((uint32_t)ptr) % multiple;
+    uint32_t rem = ((uint32_t)(uintptr_t)ptr) % multiple;
 
     // If the pointer is already aligned, stop
     if (rem == 0)
diff --git a/yjit_codegen.c b/yjit_codegen.c
index 1a19c84101..6ccc6afc99 100644
--- a/yjit_codegen.c
+++ b/yjit_codegen.c
@@ -36,7 +36,7 @@ jit_print_loc(jitstate_t* jit, const char* msg) https://github.com/ruby/ruby/blob/trunk/yjit_codegen.c#L36
     long len;
     VALUE path = rb_iseq_path(jit->iseq);
     RSTRING_GETMEM(path, ptr, len);
-    fprintf(stderr, "%s %s:%u\n", msg, ptr, rb_iseq_line_no(jit->iseq, jit->insn_idx));
+    fprintf(stderr, "%s %.*s:%u\n", msg, (int)len, ptr, rb_iseq_line_no(jit->iseq, jit->insn_idx));
 }
 
 // Get the current instruction's opcode
@@ -1825,6 +1825,8 @@ gen_opt_send_without_block(jitstate_t* jit, ctx_t* ctx) https://github.com/ruby/ruby/blob/trunk/yjit_codegen.c#L1825
         return YJIT_CANT_COMPILE;
     // no default case so compiler issues a warning if this is not exhaustive
     }
+
+    return YJIT_CANT_COMPILE;
 }
 
 static codegen_status_t
diff --git a/yjit_iface.c b/yjit_iface.c
index 24bbaab905..a08ce2bb6f 100644
--- a/yjit_iface.c
+++ b/yjit_iface.c
@@ -18,12 +18,12 @@ https://github.com/ruby/ruby/blob/trunk/yjit_iface.c#L18
 
 #if HAVE_LIBCAPSTONE
 #include <capstone/capstone.h>
+static VALUE cYjitDisasm;
+static VALUE cYjitDisasmInsn;
 #endif
 
 static VALUE mYjit;
 static VALUE cYjitBlock;
-static VALUE cYjitDisasm;
-static VALUE cYjitDisasmInsn;
 
 #if RUBY_DEBUG
 static int64_t vm_insns_count = 0;
diff --git a/yjit_iface.h b/yjit_iface.h
index a70ca90fc7..bc1f1a7ad6 100644
--- a/yjit_iface.h
+++ b/yjit_iface.h
@@ -7,9 +7,12 @@ https://github.com/ruby/ruby/blob/trunk/yjit_iface.h#L7
 #define YJIT_IFACE_H 1
 
 #include "ruby/ruby.h"
+#include "ruby/assert.h" // for RUBY_DEBUG
 #include "vm_core.h"
 #include "yjit_core.h"
 
+#if RUBY_DEBUG
+
 #define YJIT_DECLARE_COUNTERS(...) struct rb_yjit_runtime_counters { \
     int64_t __VA_ARGS__; \
 }; \
@@ -61,6 +64,8 @@ YJIT_DECLARE_COUNTERS( https://github.com/ruby/ruby/blob/trunk/yjit_iface.h#L64
 
 #undef YJIT_DECLARE_COUNTERS
 
+#endif // if RUBY_DEBUG
+
 RUBY_EXTERN struct rb_yjit_options rb_yjit_opts;
 RUBY_EXTERN int64_t rb_compiled_iseq_count;
 RUBY_EXTERN struct rb_yjit_runtime_counters yjit_runtime_counters;
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]