/* ------------------------------------------------------------------------- * * assert.c * Assert code. * * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 2010-2012 Postgres-XC Development Group * * * IDENTIFICATION * $PostgreSQL: pgsql/src/backend/utils/error/assert.c,v 1.35 2008/01/01 19:45:53 momjian Exp $ * * NOTE * This should eventually work with elog() * * ------------------------------------------------------------------------- */ #include "gtm/gtm_c.h" #include "gtm/assert.h" #include bool assert_enabled = false; /* * ExceptionalCondition - Handles the failure of an Assert() * * Note: this can't actually return, but we declare it as returning int * because the TrapMacro() macro might get wonky otherwise. */ int ExceptionalCondition(const char* conditionName, const char* errorType, const char* fileName, int lineNumber) { if (!PointerIsValid(conditionName) || !PointerIsValid(fileName) || !PointerIsValid(errorType)) { fprintf(stderr, "TRAP: ExceptionalCondition: bad arguments\n"); } else { fprintf(stderr, "TRAP: %s(\"%s\", File: \"%s\", Line: %d)\n", errorType, conditionName, fileName, lineNumber); } /* Usually this shouldn't be needed, but make sure the msg went out */ fflush(stderr); abort(); return 0; }