summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-random
diff options
context:
space:
mode:
authorRory OConnell <[email protected]>2020-06-26 21:44:31 -0700
committerRory OConnell <[email protected]>2020-06-26 21:44:31 -0700
commitb1017b26513c5773b30b88b0675ab070356fb2a8 (patch)
treef70675d02a540bd03b163341a87edb2841849b40 /mrbgems/mruby-random
parentb8d896e56ab382b89c4980c0dc0efaca23f3a2c9 (diff)
downloadmruby-b1017b26513c5773b30b88b0675ab070356fb2a8.tar.gz
mruby-b1017b26513c5773b30b88b0675ab070356fb2a8.zip
Reduce scope of volatile keyword for MSC bug
Diffstat (limited to 'mrbgems/mruby-random')
-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);