bug in code generation for -check c
When compiling:
use Array: all;
// imports
// typedefs
// functions
double [m,p] matmul( double[m,n] a, double[n,p] b)
{
return {[i,j] -> sum ({[k] -> a[i,k] * b[k,j]}) };
}
int main () {
a = genarray( [10,10], 1.0);
StdIO::print (matmul( a, a));
return 0;
}
with sac2c -check c
we get
/Users/sbs/Dropbox/BodoSac/error/a.out.c:1462:403: error: expected ')'
1462 | if (SACp_emal_8968__flat_7 < SACp_emal_8963__uprf_4320) { SACp_emal_8962__uprf_4322 = 1; } else { SACp_emal_8962__uprf_4322 = 0; SAC_RuntimeWarningLoc ("//Users/sbs/sacbase/Stdlib/build/src-seq/structures/ArrayBasics.sac", 12, 1665, "Scalar constraint `" "%s (" "%" "ll" "d" ") < " "%s (" "%" "ll" "d" ")" "' violated", "SACp_emal_8968__flat_7", SACp_emal_8968__flat_7, "SACp_emal_8963__uprf_4320" SACp_emal_8963__uprf_4320); }
| ^
/Users/sbs/Dropbox/BodoSac/error/a.out.c:1462:156: note: to match this '('
1462 | if (SACp_emal_8968__flat_7 < SACp_emal_8963__uprf_4320) { SACp_emal_8962__uprf_4322 = 1; } else { SACp_emal_8962__uprf_4322 = 0; SAC_RuntimeWarningLoc ("//Users/sbs/sacbase/Stdlib/build/src-seq/structures/ArrayBasics.sac", 12, 1665, "Scalar constraint `" "%s (" "%" "ll" "d" ") < " "%s (" "%" "ll" "d" ")" "' violated", "SACp_emal_8968__flat_7", SACp_emal_8968__flat_7, "SACp_emal_8963__uprf_4320" SACp_emal_8963__uprf_4320); }
| ^
...