Actions
Bug #13658
closedCompile error with Oracle Solaris Studio (Oracle Developer Studio) 12.4 in compile.c line 1622 (definition of BADINSN_ERROR)
Description
r59074 付近以降、Solaris 10 上の Oracle Solaris Studio 12.4 にて、
以下のエラーにより compile.c のコンパイルに失敗します。
"compile.c", line 1622: operands have incompatible types:
void ":" int
"compile.c", line 1622: operands have incompatible types:
void ":" int
"compile.c", line 1653: operands have incompatible types:
void ":" int
"compile.c", line 1653: operands have incompatible types:
void ":" int
"compile.c", line 1671: operands have incompatible types:
void ":" int
"compile.c", line 1671: operands have incompatible types:
void ":" int
"compile.c", line 1686: operands have incompatible types:
void ":" int
"compile.c", line 1686: operands have incompatible types:
void ":" int
"compile.c", line 1779: operands have incompatible types:
void ":" int
"compile.c", line 1779: operands have incompatible types:
void ":" int
以下の BADINSN_ERROR の定義にて、演算子「,」の各項、または三項演算子「?」の右側の2項に、void型を返す関数 と int型を返す関数(または定数 0)が混在しているのが原因のようです。
#define BADINSN_ERROR \
(generated_iseq ? xfree(generated_iseq) : 0, \
line_info_table ? xfree(line_info_table) : 0, \
BADINSN_DUMP(anchor, list, NULL), \
COMPILE_ERROR)
Updated by ko1 (Koichi Sasada) about 7 years ago
- Status changed from Open to Closed
Applied in changeset trunk|r59078.
simply call xfree().
- compile.c (BADINSN_ERROR): mixing (void) and (int) will fail solaris
compiler. [ruby-core:81668], [Bug #13658]
Actions
Like0
Like0