String representation of IV_MIN ("-9223372036854775808" in typical 64bit build) is expected to be treated as IV in numeric context, but current perl sometimes treat it as NV.
In !NV_PRESERVES_UV case (e.g. IV and NV are both 64-bit, as in typical x86_64 build), if such string is once referred in NV context (with sv_2nv_flags()), it will be unexpectedly treated as NV in subsequent numeric references:
String representation of IV_MIN (
"-9223372036854775808"
in typical 64bit build) is expected to be treated as IV in numeric context, but current perl sometimes treat it as NV.In
!NV_PRESERVES_UV
case (e.g. IV and NV are both 64-bit, as in typical x86_64 build), if such string is once referred in NV context (withsv_2nv_flags()
), it will be unexpectedly treated as NV in subsequent numeric references:This change will hopefully resolve this.