Incorrect C code generation in test-save
In ~/tool-src/opengeode/tests/testsuite/test-save using OG 4.1.23, the generated C code for GET_PARAM appears to be incorrect.
Using "make test-c" gives this output:
void _0_og_GET_PARAM()
{
asn1SccMyInteger idx = 0;
asn1SccSeqOf tmp41;
asn1SccUint max_range_2;
asn1SccUint min_range_2;
// param := save_buffer(0) (66,25)
ctxt.param = (asn1SccBoolType) ctxt.save_buffer.arr[0];
// idx := length (save_buffer) - 1 (68,25)
idx = (asn1SccMyInteger) (ctxt.save_buffer.nCount - 1);
// save_buffer := if length(save_buffer) > 1
// then save_buffer(1, idx) else {} fi (70,25)
min_range_2 = 1;
max_range_2 = idx;
if ((ctxt.save_buffer.nCount > 1))
{
tmp41 = (asn1SccSeqOf) ctxt.save_buffer; <<<<<<<<<<<<<<< does not remove the first element of save_buffer
}
else
{
tmp41 = (asn1SccSeqOf) asn1SccSeqOf_constant;
}
ctxt.save_buffer = (asn1SccSeqOf) tmp41;
// RETURN (None,None) at 170, 302
return;
}