static void lPrint(const char *type, Loc p, const char *fmt, va_list args) { #ifdef VOLTA_IS_WINDOWS char errorBuf[2048]; if (vsnprintf_s(errorBuf, sizeof(errorBuf), _TRUNCATE, fmt, args) == -1) { #else char *errorBuf; if (vasprintf(&errorBuf, fmt, args) == -1) { #endif fprintf(stderr, "vasprintf() unable to allocate memory!\n"); abort(); } fprintf(stderr, "%s(%d): %s: %s\n", p.name, p.line, type, errorBuf); #ifndef VOLTA_IS_WINDOWS free(errorBuf); #endif // !VOLTA_IS_WINDOWS } void Error(Loc p, const char *fmt, ...) { std::cout << "=======================================================" << std::endl; va_list args; va_start(args, fmt); lPrint("\nError", p, fmt, args); va_end(args); std::cout << "=======================================================" << std::endl; assert(0); exit(1); }
void Error(SourcePos p, const char *fmt, ...) { va_list args; va_start(args, fmt); lPrint("Error", p, fmt, args); ++m->errorCount; va_end(args); }
void PerformanceWarning(SourcePos p, const char *fmt, ...) { if (!g->emitPerfWarnings) return; va_list args; va_start(args, fmt); lPrint("Performance Warning", p, fmt, args); va_end(args); }
void Warning(SourcePos p, const char *fmt, ...) { if (g->disableWarnings) return; va_list args; va_start(args, fmt); lPrint("Warning", p, fmt, args); va_end(args); }
void Debug(SourcePos p, const char *fmt, ...) { if (!g->debugPrint) return; va_list args; va_start(args, fmt); lPrint("Debug", p, fmt, args); va_end(args); }
void PerformanceWarning(SourcePos p, const char *fmt, ...) { if (!g->emitPerfWarnings || strcmp(p.name, "stdlib.ispc") == 0 || g->quiet) return; va_list args; va_start(args, fmt); lPrint("Performance Warning", false, p, fmt, args); va_end(args); }
void Error(SourcePos p, const char *fmt, ...) { if (m != NULL) ++m->errorCount; if (g->quiet) return; va_list args; va_start(args, fmt); lPrint("Error", true, p, fmt, args); va_end(args); }
int main(int argc, char *argv[]) { srand(time(0)); printf("losowo wygenerowana lista:\n"); struct List* lst = lGenerate(5); lPrint(lst); printf("quicksort:\n"); struct List* qsorted = lQuicksort(lst); lPrint(qsorted); printf("insertionsort:\n"); struct List* insertionsorted = lInsertionsort(lst); lPrint(insertionsorted); lCleanup(lst); lCleanup(qsorted); system("PAUSE"); return 0; }
void Warning(SourcePos p, const char *fmt, ...) { if (g->warningsAsErrors && m != NULL) ++m->errorCount; if (g->disableWarnings || g->quiet) return; va_list args; va_start(args, fmt); lPrint(g->warningsAsErrors ? "Error" : "Warning", g->warningsAsErrors, p, fmt, args); va_end(args); }
void PerformanceWarning(Loc p, const char *fmt, ...) { va_list args; va_start(args, fmt); lPrint("Performance Warning", p, fmt, args); va_end(args); }