DECLHIDDEN(void) supR3HardenedFatal(const char *pszFormat, ...) { va_list va; va_start(va, pszFormat); supR3HardenedFatalV(pszFormat, va); va_end(va); }
DECL_NO_RETURN(DECLHIDDEN(void)) supR3HardenedFatal(const char *pszFormat, ...) { va_list va; va_start(va, pszFormat); supR3HardenedFatalV(pszFormat, va); /* not reached */ }
DECLHIDDEN(int) supR3HardenedErrorV(int rc, bool fFatal, const char *pszFormat, va_list va) { if (fFatal) supR3HardenedFatalV(pszFormat, va); fprintf(stderr, "%s: ", g_pszSupLibHardenedProgName); vfprintf(stderr, pszFormat, va); return rc; }
DECLHIDDEN(int) supR3HardenedErrorV(int rc, bool fFatal, const char *pszFormat, va_list va) { if (fFatal) supR3HardenedFatalV(pszFormat, va); va_list vaCopy; va_copy(vaCopy, va); AssertLogRelMsgFailed(("%N", pszFormat, &vaCopy)); /** @todo figure out why this ain't working, or at seems to be that way... */ va_end(vaCopy); RTLogRelPrintfV(pszFormat, va); return rc; }