15void error(pg_exception e);
16void error(pg_exception e) {
17 ::errstart(ERROR, TEXTDOMAIN);
19#pragma GCC diagnostic push
20#pragma GCC diagnostic ignored "-Wformat-security"
22 ::errmsg(
"%s", e.message());
24#pragma GCC diagnostic pop
26 ::errfinish(__FILE__, __LINE__, __func__);
27 __builtin_unreachable();
32 std::integral<std::decay_t<T>> ||
33 (std::is_pointer_v<std::decay_t<T>> &&
34 std::same_as<std::remove_cv_t<std::remove_pointer_t<std::decay_t<T>>>,
char>) ||
35 std::is_pointer_v<std::decay_t<T>>;
38void report(
int elevel,
const char (&fmt)[N], Args... args) {
39 ::errstart(elevel, TEXTDOMAIN);
41#pragma GCC diagnostic push
42#pragma GCC diagnostic ignored "-Wformat-security"
44 ::errmsg(fmt, args...);
46#pragma GCC diagnostic pop
48 ::errfinish(__FILE__, __LINE__, __func__);
49 if (elevel >= ERROR) {
50 __builtin_unreachable();