From 3a6dec0c5daf568f4846f10fed9c115bc164871b Mon Sep 17 00:00:00 2001 From: shugo Date: Thu, 13 Dec 2012 03:09:22 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ ext/bigdecimal/bigdecimal.c | 2 +- include/ruby/ruby.h | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) 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 + + * 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 * 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))