currently when called before the grid extension for IOUtil has been registered (which is when IOUtils learns if the is a checkpoint recovery run or not), the routine returns -1. However the documentation in the thorn guide states that
Thorn IOUtil provides an aliased function for other I/O thorns to call: CCTK_INT FUNCTION IO_TruncateOutputFiles (CCTK_POINTER_TO_CONST IN cctkGH) This function simply returns 1 or 0 if output files should or should not be truncated.
Since there are thorns out there that take this to heart and test for IO_TruncateOutputFiles() being true (ie non-zero) these thorns always overwrite data during a recovery when calling IOUtils too early. This happened to Carpet in ticket
The attached patch makes IOUtil abort instead which seems better than silently returning the wrong (since undocumented) answer. No actual user thorn should be affected.