yutopp/rill

コンパイルが Segmantation fault または Stack overflow する

nekketsuuu opened this issue · 0 comments

以下のコードをコンパイルするときに Segmentation fault したり Stack overflow したりします。

class c!(T: type) {}

def loop!(T: type)(a: c!(T)): type {
    return c!(loop(a));
}

def main() {
    val a = c!(int32)();
    val t = loop(a);
}

Wandbox: https://wandbox.org/permlink/Iv4h42MNGTyzhH1O

プログラムの問題なのかコンパイラの問題なのかよく分からなかったので issue として投稿します。

以下ログです。

$ rillc loop.rill
= LOAD_MODULE(/code/loop.rill)
bash: line 1:    11 Segmentation fault      (core dumped) rillc loop.rill
$ rillc loop.rill
= LOAD_MODULE(/code/loop.rill)
Fatal error: exception Stack overflow
Raised by primitive operation at file "src/batPrintf.mlv", line 292, characters 19-44
Called from file "sema_lifetime.ml", line 54, characters 9-22
Called from file "sema_lifetime.ml", line 54, characters 9-22
Called from file "sema_lifetime.ml", line 54, characters 9-22
# 同じ出力がここに507行入ります。省略します。
Called from file "sema_lifetime.ml", line 54, characters 9-22
$