$! assignment does not work properly

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

[ruby-core:10721]e$B$Ne(B

[ ruby-Bugs-9451 ] Exception in Matrix inverse

e$B$G$9$,!"D>@$N860x$Oe(B$!e$B$rBeF~$7$F$b$=$l$,H?1G$5$l$J$$e(B(e$B$N$G!“e(B
$@e$B$X$N%”%/%;%9$,%(%i!<$K$J$ke(B)e$B$H$$$&$b$N$G$7$?!#6qBNE*$K$Oe(B
errinfo_settere$B$,e(B GET_THREAD()->errinfo e$B$KBeF~$7$F$$$k$N$K!"e(B
get_errinfo()e$B$O$=$l$r;2>H$;$:$K%3!<%k%9%?%C%/$r%9%-%c%s$7$Fe(B
e$B$$$k$h$&$G$9!#e(B

e$B%3!<%k%9%?%C%/$N9=B$$,J,$+$i$J$$$N$G;d$K$O$3$3$^$G$G$7$?!#e(B
get_errinfo()e$B$N@hF,$Ke(B

 if (!NIL_P(th->errinfo)) return th->errinfo;

e$B$H$$$&%3!<%I$rB-$9$H$H$j$"$($:$3$NLdBj$O2sHr$G$-$^$9$,!"$=$le(B
e$B$,@5$7$$BP1~$+$I$&$+$O;d$K$OJ,$+$j$^$;$s!#e(B