Project

General

Profile

Bug #12397

Since r54986, syntax error with Oracle Solaris Studio 12.x on Solaris 10

Added by ngoto (Naohisa Goto) about 3 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-dev:49629]

Description

r54986以降、Solaris 10上の Oracle Solaris Studio 12.3 および 12.4 にて、以下のエラーでコンパイルに失敗します。

一部分のみピックアップすると、extension が単なる関数扱いされているのが原因のようです。

"array.c", line 2031: warning: implicit function declaration: __extension__ (E_NO_IMPLICIT_DECL_ALLOWED)
"array.c", line 2031: syntax error before or at: {

Oracle Solaris Studio 12.x には、builtin_constant_p() は存在するため、HAVE_BUILTIN_BUILTIN_CONSTANT_P は 1 になります。
https://docs.oracle.com/cd/E19205-01/821-2496/gipib/index.html

しかし、extension は存在しません。(GCC拡張?)

configureで builtin_constant_p をチェックするだけではなく、 __extension の有無もチェックする必要があるのかもしれません。

以下、詳細なエラーメッセージ。

cc -errtags=yes  -xO4 -xtarget=sparc64viiplus -m64 -DRUBY_EXPORT -I/usr/local/64/lib/libffi-3.0.10/include -I/usr/local/64/include  -D_XOPEN_SOURCE=500   -I. -I.ext/include/sparc64-solaris2.10 -I./include -I. -o array.o -c array.c
"./include/ruby/intern.h", line 485: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"./include/ruby/intern.h", line 787: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"internal.h", line 1455: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2031: warning: implicit function declaration: __extension__ (E_NO_IMPLICIT_DECL_ALLOWED)
"array.c", line 2031: syntax error before or at: {
"array.c", line 2031: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2032: syntax error before or at: (
"array.c", line 2032: warning: old-style declaration or incorrect type for: RUBY_IMMEDIATE_MASK (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2032: identifier redeclared: RUBY_IMMEDIATE_MASK
    current : int
    previous: enum ruby_special_consts {RUBY_SPECIAL_SHIFT(8), RUBY_SYMBOL_FLAG(12), RUBY_FLONUM_FLAG(2), RUBY_FLONUM_MASK(3), RUBY_FIXNUM_FLAG(1), RUBY_IMMEDIATE_MASK(7), RUBY_Qundef(52), RUBY_Qnil(8), RUBY_Qtrue(20), RUBY_Qfalse(0)} : "include/ruby/ruby.h", line 412
"array.c", line 2032: syntax error before or at: (
"array.c", line 2032: syntax error before or at: RUBY_Qnil
"array.c", line 2032: warning: old-style declaration or incorrect type for: RUBY_Qnil (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2032: identifier redeclared: RUBY_Qnil
    current : int
    previous: enum ruby_special_consts {RUBY_SPECIAL_SHIFT(8), RUBY_SYMBOL_FLAG(12), RUBY_FLONUM_FLAG(2), RUBY_FLONUM_MASK(3), RUBY_FIXNUM_FLAG(1), RUBY_IMMEDIATE_MASK(7), RUBY_Qundef(52), RUBY_Qnil(8), RUBY_Qtrue(20), RUBY_Qfalse(0)} : "include/ruby/ruby.h", line 409
"array.c", line 2032: syntax error before or at: struct
"array.c", line 2032: syntax error before or at: )
"array.c", line 2032: warning: old-style declaration or incorrect type for: ary (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2032: syntax error before or at: )
"array.c", line 2032: warning: old-style declaration or incorrect type for: flags (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2032: warning: old-style declaration or incorrect type for: RUBY_T_MASK (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2032: identifier redeclared: RUBY_T_MASK
    current : int
    previous: enum ruby_value_type {RUBY_T_MASK(31), RUBY_T_ZOMBIE(29), RUBY_T_ICLASS(28), RUBY_T_NODE(27), RUBY_T_IMEMO(26), RUBY_T_UNDEF(22), RUBY_T_FIXNUM(21), RUBY_T_SYMBOL(20), RUBY_T_FALSE(19), RUBY_T_TRUE(18), RUBY_T_NIL(17), RUBY_T_RATIONAL(15), RUBY_T_COMPLEX(14), RUBY_T_MATCH(13), RUBY_T_DATA(12), RUBY_T_FILE(11), RUBY_T_BIGNUM(10), RUBY_T_STRUCT(9), RUBY_T_HASH(8), RUBY_T_ARRAY(7), RUBY_T_REGEXP(6), RUBY_T_STRING(5), RUBY_T_FLOAT(4), RUBY_T_MODULE(3), RUBY_T_CLASS(2), RUBY_T_OBJECT(1), RUBY_T_NONE(0)} : "include/ruby/ruby.h", line 480
"array.c", line 2032: warning: old-style declaration or incorrect type for: RUBY_T_NODE (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2032: identifier redeclared: RUBY_T_NODE
    current : int
    previous: enum ruby_value_type {RUBY_T_MASK(31), RUBY_T_ZOMBIE(29), RUBY_T_ICLASS(28), RUBY_T_NODE(27), RUBY_T_IMEMO(26), RUBY_T_UNDEF(22), RUBY_T_FIXNUM(21), RUBY_T_SYMBOL(20), RUBY_T_FALSE(19), RUBY_T_TRUE(18), RUBY_T_NIL(17), RUBY_T_RATIONAL(15), RUBY_T_COMPLEX(14), RUBY_T_MATCH(13), RUBY_T_DATA(12), RUBY_T_FILE(11), RUBY_T_BIGNUM(10), RUBY_T_STRUCT(9), RUBY_T_HASH(8), RUBY_T_ARRAY(7), RUBY_T_REGEXP(6), RUBY_T_STRING(5), RUBY_T_FLOAT(4), RUBY_T_MODULE(3), RUBY_T_CLASS(2), RUBY_T_OBJECT(1), RUBY_T_NONE(0)} : "include/ruby/ruby.h", line 476
"array.c", line 2032: syntax error before or at: struct
"array.c", line 2032: syntax error before or at: )
"array.c", line 2032: warning: old-style declaration or incorrect type for: ary (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2032: syntax error before or at: )
"array.c", line 2032: warning: old-style declaration or incorrect type for: flags (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2032: warning: old-style declaration or incorrect type for: RUBY_FL_TAINT (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2032: identifier redeclared: RUBY_FL_TAINT
    current : int
    previous: enum ruby_fl_type {RUBY_FL_SINGLETON(4096), RUBY_FL_DUPPED(1311), RUBY_ELTS_SHARED(16384), RUBY_FL_USER18(1073741824), RUBY_FL_USER17(536870912), RUBY_FL_USER16(268435456), RUBY_FL_USER15(134217728), RUBY_FL_USER14(67108864), RUBY_FL_USER13(33554432), RUBY_FL_USER12(16777216), RUBY_FL_USER11(8388608), RUBY_FL_USER10(4194304), RUBY_FL_USER9(2097152), RUBY_FL_USER8(1048576), RUBY_FL_USER7(524288), RUBY_FL_USER6(262144), RUBY_FL_USER5(131072), RUBY_FL_USER4(65536), RUBY_FL_USER3(32768), RUBY_FL_USER2(16384), RUBY_FL_USER1(8192), RUBY_FL_USER0(4096), RUBY_FL_USHIFT(12), RUBY_FL_FREEZE(2048), RUBY_FL_EXIVAR(1024), RUBY_FL_UNTRUSTED(256), RUBY_FL_TAINT(256), RUBY_FL_FINALIZE(128), RUBY_FL_PROMOTED(96), RUBY_FL_PROMOTED1(64), RUBY_FL_PROMOTED0(32), RUBY_FL_WB_PROTECTED(32)} : "include/ruby/ruby.h", line 803
"array.c", line 2032: syntax error before or at: )
"array.c", line 2032: warning: old-style declaration or incorrect type for: taint (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2034: syntax error before or at: if
"array.c", line 2034: syntax error before or at: !=
"array.c", line 2034: syntax error before or at: RUBY_Qnil
"array.c", line 2034: warning: old-style declaration or incorrect type for: RUBY_Qnil (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2038: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2038: warning: old-style declaration or incorrect type for: i (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2038: warning: function prototype parameters must have types (E_FUNC_PROTO_REQ_TYPES)
"array.c", line 2038: warning: old-style declaration or incorrect type for: rb_array_len (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2038: identifier redeclared: rb_array_len
    current : function() returning int
    previous: function(unsigned long) returning long : "include/ruby/ruby.h", line 2009
"array.c", line 2038: warning: old-style declaration or incorrect type for: i (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2038: syntax error before or at: ++
"array.c", line 2053: warning: old-style declaration or incorrect type for: len (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2053: syntax error before or at: struct
"array.c", line 2053: syntax error before or at: )
"array.c", line 2053: warning: old-style declaration or incorrect type for: tmp (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2053: syntax error before or at: )
"array.c", line 2053: warning: old-style declaration or incorrect type for: flags (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2053: warning: old-style declaration or incorrect type for: RSTRING_NOEMBED (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2053: identifier redeclared: RSTRING_NOEMBED
    current : int
    previous: enum  {RSTRING_ENUM_END(536870913), RSTRING_FSTR(536870912), RSTRING_EMBED_LEN_MAX(23), RSTRING_EMBED_LEN_SHIFT(14), RSTRING_EMBED_LEN_MASK(507904), RSTRING_NOEMBED(8192)} : "include/ruby/ruby.h", line 939
"array.c", line 2053: syntax error before or at: struct
"array.c", line 2053: syntax error before or at: )
"array.c", line 2053: warning: old-style declaration or incorrect type for: tmp (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2053: syntax error before or at: )
"array.c", line 2053: warning: old-style declaration or incorrect type for: flags (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2053: warning: old-style declaration or incorrect type for: RSTRING_EMBED_LEN_SHIFT (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2053: identifier redeclared: RSTRING_EMBED_LEN_SHIFT
    current : int
    previous: enum  {RSTRING_ENUM_END(536870913), RSTRING_FSTR(536870912), RSTRING_EMBED_LEN_MAX(23), RSTRING_EMBED_LEN_SHIFT(14), RSTRING_EMBED_LEN_MASK(507904), RSTRING_NOEMBED(8192)} : "include/ruby/ruby.h", line 942
"array.c", line 2053: warning: old-style declaration or incorrect type for: RSTRING_EMBED_LEN_SHIFT (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2053: syntax error before or at: )
"array.c", line 2053: warning: old-style declaration or incorrect type for: tmp (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2053: syntax error before or at: )
"array.c", line 2053: warning: old-style declaration or incorrect type for: as (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2053: warning: old-style declaration or incorrect type for: heap (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2053: warning: old-style declaration or incorrect type for: len (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2053: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2056: warning: old-style declaration or incorrect type for: result (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2056: non-constant initializer: op "CALL"
"array.c", line 2057: syntax error before or at: if
"array.c", line 2057: syntax error before or at: (
"array.c", line 2057: warning: function prototype parameters must have types (E_FUNC_PROTO_REQ_TYPES)
"array.c", line 2057: function cannot return function or array
"array.c", line 2057: warning: old-style declaration or incorrect type for: taint (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: identifier redefined: taint
    current : function() returning int
    previous: int : "array.c", line 2032
"array.c", line 2057: syntax error before or at: &
"array.c", line 2057: warning: old-style declaration or incorrect type for: RUBY_IMMEDIATE_MASK (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: syntax error before or at: &
"array.c", line 2057: syntax error before or at: RUBY_Qnil
"array.c", line 2057: warning: old-style declaration or incorrect type for: RUBY_Qnil (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: syntax error before or at: struct
"array.c", line 2057: syntax error before or at: )
"array.c", line 2057: warning: old-style declaration or incorrect type for: result (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: syntax error before or at: )
"array.c", line 2057: warning: old-style declaration or incorrect type for: flags (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: warning: old-style declaration or incorrect type for: RUBY_T_MASK (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: warning: old-style declaration or incorrect type for: RUBY_T_NODE (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: syntax error before or at: struct
"array.c", line 2057: syntax error before or at: )
"array.c", line 2057: warning: old-style declaration or incorrect type for: result (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: syntax error before or at: )
"array.c", line 2057: warning: old-style declaration or incorrect type for: flags (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: warning: old-style declaration or incorrect type for: RUBY_T_MASK (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: warning: old-style declaration or incorrect type for: RUBY_T_BIGNUM (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: identifier redeclared: RUBY_T_BIGNUM
    current : int
    previous: enum ruby_value_type {RUBY_T_MASK(31), RUBY_T_ZOMBIE(29), RUBY_T_ICLASS(28), RUBY_T_NODE(27), RUBY_T_IMEMO(26), RUBY_T_UNDEF(22), RUBY_T_FIXNUM(21), RUBY_T_SYMBOL(20), RUBY_T_FALSE(19), RUBY_T_TRUE(18), RUBY_T_NIL(17), RUBY_T_RATIONAL(15), RUBY_T_COMPLEX(14), RUBY_T_MATCH(13), RUBY_T_DATA(12), RUBY_T_FILE(11), RUBY_T_BIGNUM(10), RUBY_T_STRUCT(9), RUBY_T_HASH(8), RUBY_T_ARRAY(7), RUBY_T_REGEXP(6), RUBY_T_STRING(5), RUBY_T_FLOAT(4), RUBY_T_MODULE(3), RUBY_T_CLASS(2), RUBY_T_OBJECT(1), RUBY_T_NONE(0)} : "include/ruby/ruby.h", line 461
"array.c", line 2057: syntax error before or at: struct
"array.c", line 2057: syntax error before or at: )
"array.c", line 2057: warning: old-style declaration or incorrect type for: result (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: syntax error before or at: )
"array.c", line 2057: warning: old-style declaration or incorrect type for: flags (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: warning: old-style declaration or incorrect type for: RUBY_T_MASK (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: warning: old-style declaration or incorrect type for: RUBY_T_FLOAT (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: identifier redeclared: RUBY_T_FLOAT
    current : int
    previous: enum ruby_value_type {RUBY_T_MASK(31), RUBY_T_ZOMBIE(29), RUBY_T_ICLASS(28), RUBY_T_NODE(27), RUBY_T_IMEMO(26), RUBY_T_UNDEF(22), RUBY_T_FIXNUM(21), RUBY_T_SYMBOL(20), RUBY_T_FALSE(19), RUBY_T_TRUE(18), RUBY_T_NIL(17), RUBY_T_RATIONAL(15), RUBY_T_COMPLEX(14), RUBY_T_MATCH(13), RUBY_T_DATA(12), RUBY_T_FILE(11), RUBY_T_BIGNUM(10), RUBY_T_STRUCT(9), RUBY_T_HASH(8), RUBY_T_ARRAY(7), RUBY_T_REGEXP(6), RUBY_T_STRING(5), RUBY_T_FLOAT(4), RUBY_T_MODULE(3), RUBY_T_CLASS(2), RUBY_T_OBJECT(1), RUBY_T_NONE(0)} : "include/ruby/ruby.h", line 455
"array.c", line 2057: syntax error before or at: struct
"array.c", line 2057: syntax error before or at: )
"array.c", line 2057: warning: old-style declaration or incorrect type for: result (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: syntax error before or at: )
"array.c", line 2057: warning: old-style declaration or incorrect type for: flags (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: warning: old-style declaration or incorrect type for: RUBY_FL_TAINT (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2057: syntax error before or at: )
"array.c", line 2057: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2058: syntax error before or at: (
"array.c", line 2058: warning: old-style declaration or incorrect type for: ary_join_0 (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2058: identifier redeclared: ary_join_0
    current : function() returning int
    previous: function(unsigned long, unsigned long, long, unsigned long) returning void : "array.c", line 1956
"array.c", line 2058: warning: old-style declaration or incorrect type for: result (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2058: syntax error before or at: )
"array.c", line 2058: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2060: warning: old-style declaration or incorrect type for: result (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2094: syntax error before or at: {
"array.c", line 2094: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2095: warning: old-style declaration or incorrect type for: str (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2095: syntax error before or at: {
"array.c", line 2095: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2096: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2096: warning: old-style declaration or incorrect type for: i (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2096: warning: function prototype parameters must have types (E_FUNC_PROTO_REQ_TYPES)
"array.c", line 2096: warning: old-style declaration or incorrect type for: rb_array_len (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2096: warning: old-style declaration or incorrect type for: i (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2096: syntax error before or at: ++
"array.c", line 2099: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2100: warning: function prototype parameters must have types (E_FUNC_PROTO_REQ_TYPES)
"array.c", line 2100: warning: old-style declaration or incorrect type for: rb_enc_copy (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2100: identifier redeclared: rb_enc_copy
    current : function() returning int
    previous: function(unsigned long, unsigned long) returning void : "./include/ruby/encoding.h", line 129
"array.c", line 2101: warning: function prototype parameters must have types (E_FUNC_PROTO_REQ_TYPES)
"array.c", line 2101: warning: old-style declaration or incorrect type for: rb_str_buf_append (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2101: identifier redeclared: rb_str_buf_append
    current : function() returning int
    previous: function(unsigned long, unsigned long) returning unsigned long : "./include/ruby/intern.h", line 731
"array.c", line 2102: syntax error before or at: }
"array.c", line 2103: warning: old-style declaration or incorrect type for: __extension__ (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2103: warning: old-style declaration or incorrect type for: rb_str_cat (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2103: identifier redeclared: rb_str_cat
    current : function() returning int
    previous: function(unsigned long, pointer to const char, long) returning unsigned long : "./include/ruby/intern.h", line 755
"array.c", line 2103: syntax error before or at: "]"
"array.c", line 2103: warning: old-style declaration or incorrect type for: strlen (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2103: identifier redeclared: strlen
    current : function() returning int
    previous: function(pointer to const char) returning unsigned long : "/usr/include/iso/string_iso.h", line 69
"array.c", line 2103: warning: old-style declaration or incorrect type for: rb_str_cat_cstr (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2103: identifier redeclared: rb_str_cat_cstr
    current : function() returning int
    previous: function(unsigned long, pointer to const char) returning unsigned long : "./include/ruby/intern.h", line 756
"array.c", line 2103: syntax error before or at: "]"
"array.c", line 2103: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2103: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2104: syntax error before or at: (
"array.c", line 2104: warning: function prototype parameters must have types (E_FUNC_PROTO_REQ_TYPES)
"array.c", line 2104: function cannot return function or array
"array.c", line 2104: warning: old-style declaration or incorrect type for: tainted (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: syntax error before or at: &
"array.c", line 2104: warning: old-style declaration or incorrect type for: RUBY_IMMEDIATE_MASK (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: syntax error before or at: &
"array.c", line 2104: syntax error before or at: RUBY_Qnil
"array.c", line 2104: warning: old-style declaration or incorrect type for: RUBY_Qnil (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: syntax error before or at: struct
"array.c", line 2104: syntax error before or at: )
"array.c", line 2104: warning: old-style declaration or incorrect type for: str (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: syntax error before or at: )
"array.c", line 2104: warning: old-style declaration or incorrect type for: flags (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: warning: old-style declaration or incorrect type for: RUBY_T_MASK (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: warning: old-style declaration or incorrect type for: RUBY_T_NODE (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: syntax error before or at: struct
"array.c", line 2104: syntax error before or at: )
"array.c", line 2104: warning: old-style declaration or incorrect type for: str (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: syntax error before or at: )
"array.c", line 2104: warning: old-style declaration or incorrect type for: flags (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: warning: old-style declaration or incorrect type for: RUBY_T_MASK (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: warning: old-style declaration or incorrect type for: RUBY_T_BIGNUM (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: syntax error before or at: struct
"array.c", line 2104: syntax error before or at: )
"array.c", line 2104: warning: old-style declaration or incorrect type for: str (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: syntax error before or at: )
"array.c", line 2104: warning: old-style declaration or incorrect type for: flags (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: warning: old-style declaration or incorrect type for: RUBY_T_MASK (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: warning: old-style declaration or incorrect type for: RUBY_T_FLOAT (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: syntax error before or at: struct
"array.c", line 2104: syntax error before or at: )
"array.c", line 2104: warning: old-style declaration or incorrect type for: str (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: syntax error before or at: )
"array.c", line 2104: warning: old-style declaration or incorrect type for: flags (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: warning: old-style declaration or incorrect type for: RUBY_FL_TAINT (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2104: syntax error before or at: )
"array.c", line 2104: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2105: warning: old-style declaration or incorrect type for: str (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2121: syntax error before or at: {
"array.c", line 2121: warning: syntax error:  empty declaration (E_EMPTY_DECLARATION)
"array.c", line 2122: syntax error before or at: 0
"array.c", line 2122: warning: old-style declaration or incorrect type for: rb_exec_recursive (E_OLD_STYLE_DECL_OR_BAD_TYPE)
"array.c", line 2122: identifier redeclared: rb_exec_recursive
    current : function() returning int
    previous: function(pointer to function(..) returning unsigned long, unsigned long, unsigned long) returning unsigned long : "./include/ruby/intern.h", line 464
"array.c", line 3127: non-constant case expression
"array.c", line 5766: warning: statement not reached (E_STATEMENT_NOT_REACHED)
"array.c", line 5795: warning: statement not reached (E_STATEMENT_NOT_REACHED)
"array.c", line 6166: cannot recover from previous errors
cc: acomp failed for array.c
make: *** [array.o] Error 2

Related issues

Related to Ruby master - Bug #15293: Since r64852, on Solaris with Oracle Developer Studio 12.4, syntax errorClosedActions

Associated revisions

Revision 2b97ab88
Added by ngoto (Naohisa Goto) about 3 years ago

Use RB_GNUC_EXTENSION_BLOCK instead of extension

  • include/ruby/defines.h (RB_GNUC_EXTENSION, RB_GNUC_EXTENSION_BLOCK): macros for skipping extension on non-GCC compilers.
  • eval_error.c (warn_print): use RB_GNUC_EXTENSION_BLOCK instead of extension because extension is a GNU extension. Fix compile error on Solaris 10 with Oracle Solaris Studio 12.x. [Bug #12397] [ruby-dev:49629].
  • internal.h (rb_fstring_cstr, rb_fstring_enc_cstr): ditto
  • include/ruby/encoding.h (rb_enc_str_new, rb_enc_str_new_cstr): ditto
  • include/ruby/intern.h (rb_str_new, rb_str_new_cstr, rb_usascii_str_new, rb_utf8_str_new, rb_tainted_str_new_cstr, rb_usascii_str_new_cstr, rb_utf8_str_new_cstr, rb_external_str_new_cstr, rb_locale_str_new_cstr, rb_str_buf_new_cstr, rb_str_cat_cstr, rb_exc_new_cstr): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 55082
Added by ngoto (Naohisa Goto) about 3 years ago

Use RB_GNUC_EXTENSION_BLOCK instead of extension

  • include/ruby/defines.h (RB_GNUC_EXTENSION, RB_GNUC_EXTENSION_BLOCK): macros for skipping extension on non-GCC compilers.
  • eval_error.c (warn_print): use RB_GNUC_EXTENSION_BLOCK instead of extension because extension is a GNU extension. Fix compile error on Solaris 10 with Oracle Solaris Studio 12.x. [Bug #12397] [ruby-dev:49629].
  • internal.h (rb_fstring_cstr, rb_fstring_enc_cstr): ditto
  • include/ruby/encoding.h (rb_enc_str_new, rb_enc_str_new_cstr): ditto
  • include/ruby/intern.h (rb_str_new, rb_str_new_cstr, rb_usascii_str_new, rb_utf8_str_new, rb_tainted_str_new_cstr, rb_usascii_str_new_cstr, rb_utf8_str_new_cstr, rb_external_str_new_cstr, rb_locale_str_new_cstr, rb_str_buf_new_cstr, rb_str_cat_cstr, rb_exc_new_cstr): ditto

Revision 55082
Added by ngoto (Naohisa Goto) about 3 years ago

Use RB_GNUC_EXTENSION_BLOCK instead of extension

  • include/ruby/defines.h (RB_GNUC_EXTENSION, RB_GNUC_EXTENSION_BLOCK): macros for skipping extension on non-GCC compilers.
  • eval_error.c (warn_print): use RB_GNUC_EXTENSION_BLOCK instead of extension because extension is a GNU extension. Fix compile error on Solaris 10 with Oracle Solaris Studio 12.x. [Bug #12397] [ruby-dev:49629].
  • internal.h (rb_fstring_cstr, rb_fstring_enc_cstr): ditto
  • include/ruby/encoding.h (rb_enc_str_new, rb_enc_str_new_cstr): ditto
  • include/ruby/intern.h (rb_str_new, rb_str_new_cstr, rb_usascii_str_new, rb_utf8_str_new, rb_tainted_str_new_cstr, rb_usascii_str_new_cstr, rb_utf8_str_new_cstr, rb_external_str_new_cstr, rb_locale_str_new_cstr, rb_str_buf_new_cstr, rb_str_cat_cstr, rb_exc_new_cstr): ditto

Revision 55082
Added by ngoto (Naohisa Goto) about 3 years ago

Use RB_GNUC_EXTENSION_BLOCK instead of extension

  • include/ruby/defines.h (RB_GNUC_EXTENSION, RB_GNUC_EXTENSION_BLOCK): macros for skipping extension on non-GCC compilers.
  • eval_error.c (warn_print): use RB_GNUC_EXTENSION_BLOCK instead of extension because extension is a GNU extension. Fix compile error on Solaris 10 with Oracle Solaris Studio 12.x. [Bug #12397] [ruby-dev:49629].
  • internal.h (rb_fstring_cstr, rb_fstring_enc_cstr): ditto
  • include/ruby/encoding.h (rb_enc_str_new, rb_enc_str_new_cstr): ditto
  • include/ruby/intern.h (rb_str_new, rb_str_new_cstr, rb_usascii_str_new, rb_utf8_str_new, rb_tainted_str_new_cstr, rb_usascii_str_new_cstr, rb_utf8_str_new_cstr, rb_external_str_new_cstr, rb_locale_str_new_cstr, rb_str_buf_new_cstr, rb_str_cat_cstr, rb_exc_new_cstr): ditto

Revision 55082
Added by ngoto (Naohisa Goto) about 3 years ago

Use RB_GNUC_EXTENSION_BLOCK instead of extension

  • include/ruby/defines.h (RB_GNUC_EXTENSION, RB_GNUC_EXTENSION_BLOCK): macros for skipping extension on non-GCC compilers.
  • eval_error.c (warn_print): use RB_GNUC_EXTENSION_BLOCK instead of extension because extension is a GNU extension. Fix compile error on Solaris 10 with Oracle Solaris Studio 12.x. [Bug #12397] [ruby-dev:49629].
  • internal.h (rb_fstring_cstr, rb_fstring_enc_cstr): ditto
  • include/ruby/encoding.h (rb_enc_str_new, rb_enc_str_new_cstr): ditto
  • include/ruby/intern.h (rb_str_new, rb_str_new_cstr, rb_usascii_str_new, rb_utf8_str_new, rb_tainted_str_new_cstr, rb_usascii_str_new_cstr, rb_utf8_str_new_cstr, rb_external_str_new_cstr, rb_locale_str_new_cstr, rb_str_buf_new_cstr, rb_str_cat_cstr, rb_exc_new_cstr): ditto

History

#1

Updated by ngoto (Naohisa Goto) about 3 years ago

  • Status changed from Open to Closed

Applied in changeset r55082.


Use RB_GNUC_EXTENSION_BLOCK instead of extension

  • include/ruby/defines.h (RB_GNUC_EXTENSION, RB_GNUC_EXTENSION_BLOCK): macros for skipping extension on non-GCC compilers.
  • eval_error.c (warn_print): use RB_GNUC_EXTENSION_BLOCK instead of extension because extension is a GNU extension. Fix compile error on Solaris 10 with Oracle Solaris Studio 12.x. [Bug #12397] [ruby-dev:49629].
  • internal.h (rb_fstring_cstr, rb_fstring_enc_cstr): ditto
  • include/ruby/encoding.h (rb_enc_str_new, rb_enc_str_new_cstr): ditto
  • include/ruby/intern.h (rb_str_new, rb_str_new_cstr, rb_usascii_str_new, rb_utf8_str_new, rb_tainted_str_new_cstr, rb_usascii_str_new_cstr, rb_utf8_str_new_cstr, rb_external_str_new_cstr, rb_locale_str_new_cstr, rb_str_buf_new_cstr, rb_str_cat_cstr, rb_exc_new_cstr): ditto

Updated by ngoto (Naohisa Goto) about 3 years ago

r55084 にて、symbol.h 内の __builtin_constant_p についても、同様に措置しました。
(元々 r54986 の修正から漏れていた?)

Updated by usa (Usaku NAKAMURA) about 3 years ago

  • Backport changed from 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN to 2.1: DONTNEED, 2.2: DONTNEED, 2.3: DONTNEED
#4

Updated by ngoto (Naohisa Goto) 8 months ago

  • Related to Bug #15293: Since r64852, on Solaris with Oracle Developer Studio 12.4, syntax error added

Also available in: Atom PDF