Issue #6971 has been reported by vo.x (Vit Ondruch).

----------------------------------------
Bug #6971: r36832 breaks test/mkmf/test_convertible.rb
https://bugs.ruby-lang.org/issues/6971

Author: vo.x (Vit Ondruch)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 2.0.0dev (2012-09-03 trunk 36887) [x86_64-linux]


 # make test-all TESTS=test/mkmf/test_convertible.rb
 	CC = gcc
 	LD = ld
 	LDSHARED = gcc -shared
 	CFLAGS = -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -mtune=generic -fPIC -m64
 	XCFLAGS = -include ruby/config.h -include ruby/missing.h -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT
 	CPPFLAGS =   -I. -I.ext/include/x86_64-linux -I./include -I.
 	DLDFLAGS = -Wl,-soname,libruby.so.2.0 -fstack-protector  -m64
 	SOLIBS = -lpthread -lrt -ldl -lcrypt -lm  
 ./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems "./test/runner.rb" --ruby="./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"  test/mkmf/test_convertible.rb
 Run options: "--ruby=./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"
 
 # Running tests:
 
 [1/2] TestMkmf::TestConvertible#test_typeof_builtin = 0.42 s
 1) Failure:
 test_typeof_builtin(TestMkmf::TestConvertible) [/builddir/build/BUILD/ruby-2.0.0-r36887/test/mkmf/test_convertible.rb:8]:
 convertible_int: checking for convertible type of short... -------------------- short
 
 --------------------
 
 convertible_int: checking for convertible type of int... -------------------- int
 
 --------------------
 
 convertible_int: checking for convertible type of long... -------------------- long
 
 --------------------
 
 convertible_int: checking for convertible type of signed short... -------------------- failed
 
 In file included from /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby.h:33:0,
 from conftest.c:1:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h: In function ???rb_float_value???:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: warning: suggest parentheses around arithmetic in operand of ???|??? [-Wparentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: warning: suggest parentheses around arithmetic in operand of ???|??? [-Wparentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: warning: suggest parentheses around arithmetic in operand of ???|??? [-Wparentheses]
 checked program was:
 /* begin */
 1: #include "ruby.h"
 2: 
 3: int main(void) {return 0;}
 /* end */
 
 In file included from /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby.h:33:0,
 from conftest.c:1:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h: In function ???rb_float_value???:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: warning: suggest parentheses around arithmetic in operand of ???|??? [-Wparentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: warning: suggest parentheses around arithmetic in operand of ???|??? [-Wparentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: warning: suggest parentheses around arithmetic in operand of ???|??? [-Wparentheses]
 checked program was:
 /* begin */
 1: #include "ruby.h"
 2: 
 3: typedef signed short rbcv_typedef_;
 4: 
 5: /*top*/
 6: int conftest_const[((rbcv_typedef_)-1 < 0) ? 1 : -1];
 /* end */
 
 In file included from /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby.h:33:0,
 from conftest.c:1:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h: In function ???rb_float_value???:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 conftest.c: At top level:
 conftest.c:6:12: error: conflicting types for ???foo???
 conftest.c:5:22: note: previous declaration of ???foo??? was here
 cc1: all warnings being treated as errors
 checked program was:
 /* begin */
 1: #include "ruby.h"
 2: 
 3: typedef signed short rbcv_typedef_;
 4: 
 5: extern rbcv_typedef_ foo();
 6: extern int foo();
 /* end */
 
 In file included from /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby.h:33:0,
 from conftest.c:1:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h: In function ???rb_float_value???:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 cc1: all warnings being treated as errors
 checked program was:
 /* begin */
 1: #include "ruby.h"
 2: 
 3: typedef signed short rbcv_typedef_;
 4: 
 5: extern rbcv_typedef_ foo();
 6: extern short foo();
 /* end */
 
 In file included from /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby.h:33:0,
 from conftest.c:1:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h: In function ???rb_float_value???:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 conftest.c: At top level:
 conftest.c:6:13: error: conflicting types for ???foo???
 conftest.c:5:22: note: previous declaration of ???foo??? was here
 cc1: all warnings being treated as errors
 checked program was:
 /* begin */
 1: #include "ruby.h"
 2: 
 3: typedef signed short rbcv_typedef_;
 4: 
 5: extern rbcv_typedef_ foo();
 6: extern long foo();
 /* end */
 
 In file included from /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby.h:33:0,
 from conftest.c:1:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h: In function ???rb_float_value???:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 conftest.c: At top level:
 conftest.c:6:18: error: conflicting types for ???foo???
 conftest.c:5:22: note: previous declaration of ???foo??? was here
 cc1: all warnings being treated as errors
 checked program was:
 /* begin */
 1: #include "ruby.h"
 2: 
 3: typedef signed short rbcv_typedef_;
 4: 
 5: extern rbcv_typedef_ foo();
 6: extern long long foo();
 /* end */
 
 --------------------
 
 .
 <"short"> expected but was
 <nil>.
 
 [2/2] TestMkmf::TestConvertible#test_typeof_typedef = 0.33 s        
 2) Failure:
 test_typeof_typedef(TestMkmf::TestConvertible) [/builddir/build/BUILD/ruby-2.0.0-r36887/test/mkmf/test_convertible.rb:21]:
 convertible_int: checking for convertible type of test1_t... -------------------- failed
 
 In file included from /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby.h:33:0,
 from conftest.c:1:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h: In function ???rb_float_value???:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: warning: suggest parentheses around arithmetic in operand of ???|??? [-Wparentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: warning: suggest parentheses around arithmetic in operand of ???|??? [-Wparentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: warning: suggest parentheses around arithmetic in operand of ???|??? [-Wparentheses]
 checked program was:
 /* begin */
 1: #include "ruby.h"
 2: 
 3: #include <confdefs.h>
 4: typedef test1_t rbcv_typedef_;
 5: 
 6: /*top*/
 7: int conftest_const[((rbcv_typedef_)-1 < 0) ? 1 : -1];
 /* end */
 
 In file included from /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby.h:33:0,
 from conftest.c:1:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h: In function ???rb_float_value???:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 conftest.c: At top level:
 conftest.c:8:12: error: conflicting types for ???foo???
 conftest.c:7:22: note: previous declaration of ???foo??? was here
 cc1: all warnings being treated as errors
 checked program was:
 /* begin */
 1: #include "ruby.h"
 2: 
 3: #include <confdefs.h>
 4: 
 5: typedef test1_t rbcv_typedef_;
 6: 
 7: extern rbcv_typedef_ foo();
 8: extern int foo();
 /* end */
 
 In file included from /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby.h:33:0,
 from conftest.c:1:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h: In function ???rb_float_value???:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 cc1: all warnings being treated as errors
 checked program was:
 /* begin */
 1: #include "ruby.h"
 2: 
 3: #include <confdefs.h>
 4: 
 5: typedef test1_t rbcv_typedef_;
 6: 
 7: extern rbcv_typedef_ foo();
 8: extern short foo();
 /* end */
 
 In file included from /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby.h:33:0,
 from conftest.c:1:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h: In function ???rb_float_value???:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 conftest.c: At top level:
 conftest.c:8:13: error: conflicting types for ???foo???
 conftest.c:7:22: note: previous declaration of ???foo??? was here
 cc1: all warnings being treated as errors
 checked program was:
 /* begin */
 1: #include "ruby.h"
 2: 
 3: #include <confdefs.h>
 4: 
 5: typedef test1_t rbcv_typedef_;
 6: 
 7: extern rbcv_typedef_ foo();
 8: extern long foo();
 /* end */
 
 In file included from /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby.h:33:0,
 from conftest.c:1:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h: In function ???rb_float_value???:
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 /builddir/build/BUILD/ruby-2.0.0-r36887/include/ruby/ruby.h:746:6: error: suggest parentheses around arithmetic in operand of ???|??? [-Werror=parentheses]
 conftest.c: At top level:
 conftest.c:8:18: error: conflicting types for ???foo???
 conftest.c:7:22: note: previous declaration of ???foo??? was here
 cc1: all warnings being treated as errors
 checked program was:
 /* begin */
 1: #include "ruby.h"
 2: 
 3: #include <confdefs.h>
 4: 
 5: typedef test1_t rbcv_typedef_;
 6: 
 7: extern rbcv_typedef_ foo();
 8: extern long long foo();
 /* end */
 
 --------------------
 
 .
 <"short"> expected but was
 <nil>.
 
 Finished tests in 0.757810s, 2.6392 tests/s, 6.5980 assertions/s.
 2 tests, 5 assertions, 2 failures, 0 errors, 0 skips
 
 ruby -v: ruby 2.0.0dev (2012-09-03 trunk 36887) [x86_64-linux]
 make: *** [yes-test-all] Error 2
 

It works just fine when reverting the patch. Testing with Fedora Rawhide.

# rpm -q gcc
gcc-4.7.1-7.fc19.x86_64



-- 
http://bugs.ruby-lang.org/