ohai / ruby-sdl2

A Ruby wrapper for SDL 2.x
GNU Lesser General Public License v3.0
71 stars 16 forks source link

Eliminate "division by zero" warnings under Ruby 2.5 #7

Closed ged closed 6 years ago

ged commented 6 years ago

Ruby 2.5 seems to have changed how rb_funcall is implemented, causing calls with no arguments that pass an explicit null pointer like:

rb_funcall(val, rb_intern("integer?"), 0, 0)

to show the following warning (at least under MacOS X/clang):

video.c:2272:15: warning: division by zero is undefined [-Wdivision-by-zero]
    if (RTEST(rb_funcall(val, rb_intern("integer?"), 0, 0))) {
        ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/ged/.rvm/rubies/ruby-2.5.0/include/ruby-2.5.0/ruby/ruby.h:2470:6: note: expanded from macro 'rb_funcall'
            rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \
            ^
/Users/ged/.rvm/rubies/ruby-2.5.0/include/ruby-2.5.0/ruby/ruby.h:1775:3: note: expanded from macro 'rb_varargs_argc_check'
         rb_varargs_bad_length(argc, vargc)), \
         ^
/Users/ged/.rvm/rubies/ruby-2.5.0/include/ruby-2.5.0/ruby/ruby.h:1770:56: note: expanded from macro 'rb_varargs_bad_length'
#     define rb_varargs_bad_length(argc, vargc) ((argc)/((argc) == (vargc)))
                                                       ^
/Users/ged/.rvm/rubies/ruby-2.5.0/include/ruby-2.5.0/ruby/ruby.h:452:26: note: expanded from macro 'RTEST'
#define RTEST(v) RB_TEST(v)
                 ~~~~~~~~^~
/Users/ged/.rvm/rubies/ruby-2.5.0/include/ruby-2.5.0/ruby/ruby.h:450:31: note: expanded from macro 'RB_TEST'
#define RB_TEST(v) !(((VALUE)(v) & (VALUE)~RUBY_Qnil) == 0)
                              ^
1 warning generated.

The other commit in this PR just ignores .bundle files on MacOS X.

Thanks for a great library!

ohai commented 6 years ago

It looks good. Thank your for your contribution.