When compiling this program with gcobol:
identification division.
program-id. prog.
data division.
working-storage section.
01 val pic v9(5) value .001.
procedure division.
display val
goback.
the rounding up of .99999...9999 to 1.000...0000 causes a read of the
first byte of the output buffer. Although harmless, it generates a
valgrind warning. The following change clears that warning.
gcc/ChangeLog:
* real.cc (real_to_decimal_for_mode): Set str[0] to known value.
strcpy (str, (r.sign ? "-0.0" : "0.0"));
return;
case rvc_normal:
+ /* When r_orig is a positive value that converts to all nines and is
+ rounded up to 1.0, str[0] is harmlessly accessed before being set to
+ '1'. That read access triggers a valgrind warning. Setting str[0]
+ to any value quiets the warning. */
+ str[0] = ' ';
break;
case rvc_inf:
strcpy (str, (r.sign ? "-Inf" : "+Inf"));