[ruby-cvs:69682] naruse:r62501 (ruby_2_5): merge revision(s) 62116, 62151: [Backport #14425]

naruse at ruby-lang.org naruse at ruby-lang.org
Wed Feb 21 05:11:47 JST 2018


naruse	2018-02-21 05:11:47 +0900 (Wed, 21 Feb 2018)

  New Revision: 62501

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=62501

  Log:
    merge revision(s) 62116,62151: [Backport #14425]
    
    ruby.h: relax rb_funcall check on extra args for clang
    
    clang 5.+ (tested clang 7.0.0) seems to be attempting division-by-zero
    and giving a very large number for static args to rb_funcall.
    
    * include/ruby/ruby.h (rb_varargs_bad_length): relax check for clang
    * ext/-test-/funcall/funcall.c: renamed from passing_block.c
      define extra_args_name function
    * test/-ext-/funcall/test_funcall.rb: new test
      [ruby-core:85266] [Bug #14425]
    
    From: Eric Wong <e at 80x24.org>
    
    ruby.h: relax rb_funcall(obj, id, 0, 0) case only
    
    * include/ruby/ruby.h (rb_varargs_argc_valid_p): relax rb_funcall
      check on extra args only if argc == 0, for the compatibility
      with wrong code which is probably confused with rb_funcallv.
      [Bug #14425]

  Added files:
    branches/ruby_2_5/ext/-test-/funcall/funcall.c
    branches/ruby_2_5/test/-ext-/funcall/test_funcall.rb
  Removed files:
    branches/ruby_2_5/ext/-test-/funcall/passing_block.c
  Modified directories:
    branches/ruby_2_5/
  Modified files:
    branches/ruby_2_5/include/ruby/ruby.h
    branches/ruby_2_5/version.h


More information about the ruby-cvs mailing list