Wow! I can't believe the number of numeric overflow operations found in legacy code that is converted to /Free syntax.
This is when you have a target variable that is (for example) defined as 7p2 and the code moves a value to that field that is larger than 5-digits, such as: 99999.00 + 1.00
So much legacy code.... So I'm using the ChkDecOvr() (check for decimal overflow) subprocedure to first validate if it will fit and then if it won't take an alternate course of action; rather than just blow up. Or I could wrap the code in MONITOR/on-error groups.
/free if chkDecOvr( sales * qty : %len(ordTot) : %decPos(ordTot)); // Value too big to fit in target variable! else; ordTot = sales * qty; // We're good. endif; /end-free
Anyway, we've added ChkDecOvr() to the COZTOOLS runtime.