summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-random/src/random.c
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-random/src/random.c')
-rw-r--r--mrbgems/mruby-random/src/random.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/mrbgems/mruby-random/src/random.c b/mrbgems/mruby-random/src/random.c
index f1834848d..55bea5713 100644
--- a/mrbgems/mruby-random/src/random.c
+++ b/mrbgems/mruby-random/src/random.c
@@ -215,15 +215,18 @@ mrb_ary_shuffle_bang(mrb_state *mrb, mrb_value ary)
{
mrb_int i;
mrb_value max;
+ mrb_value r = mrb_nil_value();
+ rand_state *random;
+
/*
- * MSC compiler generating invalid instructions with optimization
+ * MSC compiler bug generating invalid instructions with optimization
* enabled
*/
#if defined _MSC_VER && _MSC_VER >= 1923
- volatile
+ volatile mrb_value rr;
+ rr = r;
+ r = rr;
#endif
- mrb_value r = mrb_nil_value();
- rand_state *random;
if (RARRAY_LEN(ary) > 1) {
mrb_get_args(mrb, "|o", &r);