From a40d09e27fefbeca0d6994471b3e6965f1ac9dda Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Mon, 18 Feb 2013 18:53:32 -0300 Subject: [PATCH] Move ExceptionalCondition back to postgres.h It needs to be defined in the backend even when assertions are not enabled. It's cleaner to put it back, than create a separate #ifdef section in c.h. Per trouble report from Jeff Janes --- src/include/c.h | 4 ---- src/include/postgres.h | 10 ++++++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/include/c.h b/src/include/c.h index d38788ec79..ca7ff8663a 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -619,10 +619,6 @@ typedef NameData *Name; #define AssertState(condition) \ Trap(!(condition), "BadState") -extern void ExceptionalCondition(const char *conditionName, - const char *errorType, - const char *fileName, int lineNumber) __attribute__((noreturn)); - #endif /* USE_ASSERT_CHECKING && !FRONTEND */ diff --git a/src/include/postgres.h b/src/include/postgres.h index 9808bdca46..f9c5527932 100644 --- a/src/include/postgres.h +++ b/src/include/postgres.h @@ -639,9 +639,15 @@ extern Datum Float8GetDatum(float8 X); */ /* - * This declaration supports the assertion-related macros in c.h. This is here - * because that file doesn't have PGDLLIMPORT in the right place. + * These declarations supports the assertion-related macros in c.h. + * assert_enabled is here because that file doesn't have PGDLLIMPORT in the + * right place, and ExceptionalCondition must be present, for the backend only, + * even when assertions are not enabled. */ extern PGDLLIMPORT bool assert_enabled; +extern void ExceptionalCondition(const char *conditionName, + const char *errorType, + const char *fileName, int lineNumber) __attribute__((noreturn)); + #endif /* POSTGRES_H */