util: noexcept logging and also noreturn for fatal()
[staging/windowmanager.git] / src / util.hpp
index a2f0dbf..0a3b8de 100644 (file)
@@ -8,19 +8,21 @@
 #ifdef __GNUC__
 #define ATTR_FORMAT(stringindex, firsttocheck) \
    __attribute__((format(printf, stringindex, firsttocheck)))
+#define ATTR_NORETURN __attribute__((noreturn))
 #else
 #define ATTR_FORMAT(stringindex, firsttocheck)
+#define ATTR_NORETURN
 #endif
 
-void lognotice(char const *fmt, ...) ATTR_FORMAT(1, 2);
-void logerror(char const *fmt, ...) ATTR_FORMAT(1, 2);
-void fatal(char const *fmt, ...) ATTR_FORMAT(1, 2);
+void lognotice(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2);
+void logerror(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2);
+void fatal(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2) ATTR_NORETURN;
 
 #ifdef DEBUG_OUTPUT
-void logdebug(char const *fmt, ...) ATTR_FORMAT(1, 2);
+void logdebug(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2);
 #else
-static inline void logdebug(char const *fmt, ...) ATTR_FORMAT(1, 2);
-static inline void logdebug(char const *fmt, ...) {}
+static inline void logdebug(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2);
+static inline void logdebug(char const *fmt, ...) noexcept {}
 #endif
 
 //      _                   _                 _                       __     _