[Ruby 1.9 - Bug #5464][Open] compile error in vm_eval.c

Issue #5464 has been reported by Naohisa G…


Bug #5464: compile error in vm_eval.c

Author: Naohisa G.
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby 2.0.0dev (2011-10-19) [sparc-solaris2.10]

Solaris 10 にて Fujitsu C Compiler Version 5.6
を使ってtrunkをコンパイルしたところ、以下のコンパイルエラーが出ました。

“./vm_eval.c”, line 275: error: initialization: constant expression is
expected for variable: `args’

このコンパイラでは、Cの配列の初期値としてコンパイル時に確定するものしか使えないようです。
1要素ずつ代入するようにするパッチを添付します。他の環境でも問題ないと思います。

— vm_eval.c (revision 33484)
+++ vm_eval.c (working copy)
@@ -272,7 +272,10 @@

 me = rb_method_entry(klass, idRespond_to);
 if (me && !(me->flag & NOEX_BASIC)) {
  • VALUE args[2] = {ID2SYM(mid), Qtrue};
  •  VALUE args[2];
    
  •  args[0] = ID2SYM(mid);
    
  •  args[1] = Qtrue;
    
    if (!RTEST(vm_call0(th, recv, idRespond_to, 2, args, me))) {
    return Qundef;
    }

Issue #5464 has been updated by Nobuyoshi N…

Category set to core
Status changed from Open to Assigned
Assignee set to Naohisa G.
Target version set to 2.0


Bug #5464: compile error in vm_eval.c

Author: Naohisa G.
Status: Assigned
Priority: Normal
Assignee: Naohisa G.
Category: core
Target version: 2.0
ruby -v: ruby 2.0.0dev (2011-10-19) [sparc-solaris2.10]

Solaris 10 にて Fujitsu C Compiler Version 5.6
を使ってtrunkをコンパイルしたところ、以下のコンパイルエラーが出ました。

“./vm_eval.c”, line 275: error: initialization: constant expression is
expected for variable: `args’

このコンパイラでは、Cの配列の初期値としてコンパイル時に確定するものしか使えないようです。
1要素ずつ代入するようにするパッチを添付します。他の環境でも問題ないと思います。

— vm_eval.c (revision 33484)
+++ vm_eval.c (working copy)
@@ -272,7 +272,10 @@

 me = rb_method_entry(klass, idRespond_to);
 if (me && !(me->flag & NOEX_BASIC)) {
  • VALUE args[2] = {ID2SYM(mid), Qtrue};
  •  VALUE args[2];
    
  •  args[0] = ID2SYM(mid);
    
  •  args[1] = Qtrue;
    
    if (!RTEST(vm_call0(th, recv, idRespond_to, 2, args, me))) {
    return Qundef;
    }