2017-02-18 18:35 GMT+01:00 Tom Lane <t...@sss.pgh.pa.us>: > Pavel Stehule <pavel.steh...@gmail.com> writes: > > float.c:382:5: note: ‘snprintf’ output between 2 and 311 bytes into a > > destination of size 65 > > float.c:618:5: note: ‘snprintf’ output between 2 and 311 bytes into a > > destination of size 129 > > That's kind of annoying. I suppose the point is that the compiler can't > see what precision we're selecting, and with sufficiently large precision > the output could be that wide. But actually the precision should be small > enough to make that OK. > > Do the warnings go away if you add some explicit guard to the precision > variable, say like this: > > { > int ndig = DBL_DIG + extra_float_digits; > > if (ndig < 1) > ndig = 1; > + if (ndig > 50) > + ndig = 50; >
This fix doesn't help Regards Pavel > > snprintf(ascii, MAXDOUBLEWIDTH + 1, "%.*g", ndig, num); > } > > If not, I guess we could increase the size of the palloc'd strings, > but that seems wasteful. > > regards, tom lane >