Project

General

Profile

Actions

Bug #11645

closed

Since r52422, failed to compile parse.y on Solaris 10 with Oracle Solaris Studio 12.3

Added by ngoto (Naohisa Goto) almost 10 years ago. Updated almost 10 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-dev:49327]

Description

Solaris 10 にて、 Oracle Solaris Studio 12.3 にて、parse.y (から生成された parse.c)のコンパイルに失敗します。

ruby --disable=gems ./tool/id2token.rb --path-separator=.:./ --vpath=.ext/include/sparc64-solaris2.10/ruby:./include/ruby:./missing id.h parse.y > parse.tmp.y
bison -d  -o y.tab.c parse.tmp.y
rm -f parse.tmp.y
sed -f ./tool/ytab.sed -e "/^#/s!parse\.tmp\.[iy]!parse.y!" -e "/^#/s!y\.tab\.c!parse.c!" y.tab.c > parse.c.new
mv parse.c.new parse.c
sed -e "/^#line.*y\.tab\.h/d;/^#line.*parse.*\.y/d" y.tab.h > parse.h
rm -f y.tab.c y.tab.h
+ cp ./lex.c.blt lex.c 
cc -xO4 -xtarget=sparc64viiplus -m64 -DRUBY_EXPORT -I/usr/local/64/lib/libffi-3.0.10/include -I/usr/local/64/include   -I. -I.ext/include/sparc64-solaris2.10 -I./include -I. -o parse.o -c parse.c
"parse.y", line 1256: operands have incompatible types:
         void ":" int
"parse.y", line 1721: operands have incompatible types:
         void ":" int
"parse.y", line 1813: operands have incompatible types:
         void ":" int
"parse.y", line 2061: operands have incompatible types:
         void ":" int
"defs/keywords", line 174: warning: initializer will be sign-extended: -1
"defs/keywords", line 174: warning: initializer will be sign-extended: -1
"defs/keywords", line 174: warning: initializer will be sign-extended: -1
"defs/keywords", line 174: warning: initializer will be sign-extended: -1
"defs/keywords", line 174: warning: initializer will be sign-extended: -1
"defs/keywords", line 174: warning: initializer will be sign-extended: -1
"defs/keywords", line 174: warning: initializer will be sign-extended: -1
"defs/keywords", line 174: warning: initializer will be sign-extended: -1
"defs/keywords", line 22: warning: initializer will be sign-extended: -1
"defs/keywords", line 22: warning: initializer will be sign-extended: -1
cc: acomp failed for parse.c
make: *** [parse.o] Error 2

3項演算子の後ろ2項は同じ型である必要がある、というエラーのようです。
r52422にてparse.yに追加された以下のマクロが原因と思われます。

+#define NO_QCALL(q, here) \
+       ((q) != tDOTQ ? (void)0 : \
+        yyerror(".? in "here" is not supported yet"))
Actions

Also available in: Atom PDF

Like0
Like0