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) over 8 years ago. Updated over 8 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 #1

Updated by ngoto (Naohisa Goto) over 8 years ago

  • Status changed from Open to Closed

Applied in changeset r52424.


  • parse.y (NO_QCALL): fix type mismatch of operands that causes
    compile error with Oracle Solaris Studio on Solaris.
    [Bug #11645] [ruby-dev:49327]
Actions

Also available in: Atom PDF

Like0
Like0