summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--ext/bigdecimal/bigdecimal.c2
-rw-r--r--include/ruby/ruby.h6
3 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ea7a1bd28c..bbf78c2a66 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Thu Dec 13 12:07:25 2012 Shugo Maeda <shugo@ruby-lang.org>
+
+ * include/ruby/ruby.h (RB_UNUSED_VAR): new macro to suppress
+ warnings for unused variables.
+
+ * ext/bigdecimal/bigdecimal.c (ENTER): use RB_UNUSED_VAR() to
+ suppress annoying warnings by -Wunused-but-set-variable in gcc 4.6.
+
Thu Dec 13 11:22:33 2012 Koichi Sasada <ko1@atdot.net>
* method.h: remove "VM_METHOD_TYPE__MAX" from rb_method_type_t.
diff --git a/ext/bigdecimal/bigdecimal.c b/ext/bigdecimal/bigdecimal.c
index 1435c03eb0..b161bc95ca 100644
--- a/ext/bigdecimal/bigdecimal.c
+++ b/ext/bigdecimal/bigdecimal.c
@@ -60,7 +60,7 @@ static ID id_to_r;
static ID id_eq;
/* MACRO's to guard objects from GC by keeping them in stack */
-#define ENTER(n) volatile VALUE vStack[n];int iStack=0
+#define ENTER(n) volatile VALUE RB_UNUSED_VAR(vStack[n]);int iStack=0
#define PUSH(x) vStack[iStack++] = (VALUE)(x);
#define SAVE(p) PUSH(p->obj);
#define GUARD_OBJ(p,y) {p=y;SAVE(p);}
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index aa0861e92c..b39cbf7864 100644
--- a/include/ruby/ruby.h
+++ b/include/ruby/ruby.h
@@ -529,6 +529,12 @@ static inline volatile VALUE *rb_gc_guarded_ptr(volatile VALUE *ptr) {return ptr
#endif
#define RB_GC_GUARD(v) (*RB_GC_GUARD_PTR(&(v)))
+#ifdef __GNUC__
+#define RB_UNUSED_VAR(x) x __attribute__ ((unused))
+#else
+#define RB_UNUSED_VAR(x) x
+#endif
+
void rb_check_type(VALUE,int);
#define Check_Type(v,t) rb_check_type((VALUE)(v),(t))