/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* chained and fall back to simpler handlers in case of failure.
*
* Returns: %G_LOG_WRITER_HANDLED if the log entry was handled successfully;
- * %G_LOG_WRITER_UNHANDLED otherwise
+ * %G_LOG_WRITER_UNHANDLED otherwise
+ *
* Since: 2.50
*/
typedef GLogWriterOutput (*GLogWriterFunc) (GLogLevelFlags log_level,
gboolean g_log_writer_default_would_drop (GLogLevelFlags log_level,
const char *log_domain);
+/* G_MESSAGES_DEBUG enablement */
+GLIB_AVAILABLE_IN_2_72
+gboolean g_log_get_debug_enabled (void);
+GLIB_AVAILABLE_IN_2_72
+void g_log_set_debug_enabled (gboolean enabled);
+
/**
* G_DEBUG_HERE:
*
int line,
const char *func,
const char *warnexpr) G_ANALYZER_NORETURN;
+G_NORETURN
GLIB_DEPRECATED
void g_assert_warning (const char *log_domain,
const char *file,
const int line,
const char *pretty_function,
- const char *expression) G_GNUC_NORETURN;
+ const char *expression);
GLIB_AVAILABLE_IN_2_56
void g_log_structured_standard (const gchar *log_domain,
format)
#endif
#else /* no varargs macros */
-static void g_error (const gchar *format, ...) G_GNUC_NORETURN G_ANALYZER_NORETURN;
+G_NORETURN static void g_error (const gchar *format, ...) G_ANALYZER_NORETURN;
static void g_critical (const gchar *format, ...) G_ANALYZER_NORETURN;
static inline void
#if defined(G_HAVE_ISO_VARARGS) && !G_ANALYZER_ANALYZING
#define g_warning_once(...) \
G_STMT_START { \
- static volatile int G_PASTE (_GWarningOnceBoolean, __LINE__) = 0; \
+ static int G_PASTE (_GWarningOnceBoolean, __LINE__) = 0; /* (atomic) */ \
if (g_atomic_int_compare_and_exchange (&G_PASTE (_GWarningOnceBoolean, __LINE__), \
0, 1)) \
g_warning (__VA_ARGS__); \
#elif defined(G_HAVE_GNUC_VARARGS) && !G_ANALYZER_ANALYZING
#define g_warning_once(format...) \
G_STMT_START { \
- static volatile int G_PASTE (_GWarningOnceBoolean, __LINE__) = 0; \
+ static int G_PASTE (_GWarningOnceBoolean, __LINE__) = 0; /* (atomic) */ \
if (g_atomic_int_compare_and_exchange (&G_PASTE (_GWarningOnceBoolean, __LINE__), \
0, 1)) \
g_warning (format); \