summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--vm_insnhelper.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e644ee5c84..c6c78846c4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Thu Dec 13 23:14:17 2012 Shugo Maeda <shugo@ruby-lang.org>
+
+ * vm_insnhelper.c (vm_call_super_method): a workaround for the
+ failure of TestRefinement#test_refine_recursion in Windows.
+ See [ruby-core:50871] for details.
+
Thu Dec 13 23:10:52 Charlie Somerville <charlie@charliesomerville.com>
* object.c (Init_Object): use rb_mod_init_copy for Class#initialize_copy
* class.c (rb_class_init_copy): rename to class_init_copy_check, performs type
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index caaab54e1d..d1b136e684 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -1852,6 +1852,11 @@ vm_call_general(rb_thread_t *th, rb_control_frame_t *reg_cfp, rb_call_info_t *ci
static VALUE
vm_call_super_method(rb_thread_t *th, rb_control_frame_t *reg_cfp, rb_call_info_t *ci)
{
+#ifdef _WIN32
+ volatile int x = 0; /* a workaround to avoid VC++ optimization which
+ makes vm_call_super_method as an alias of
+ vm_call_general! */
+#endif
return vm_call_method(th, reg_cfp, ci);
}