util: noexcept logging and also noreturn for fatal()
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>
Tue, 4 Jul 2017 14:29:32 +0000 (16:29 +0200)
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>
Tue, 8 Aug 2017 15:24:00 +0000 (17:24 +0200)
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
src/util.cpp
src/util.hpp
src/wayland.cpp

index 482003e..623702d 100644 (file)
@@ -35,21 +35,21 @@ static void log_(char const *log_type, FILE *stream, char const *fmt,
    fputs("\n", stream);
 }
 
-void lognotice(char const *fmt, ...) {
+void lognotice(char const *fmt, ...) noexcept {
    va_list a;
    va_start(a, fmt);
    log_("notice", stdout, fmt, a);
    va_end(a);
 }
 
-void logerror(char const *fmt, ...) {
+void logerror(char const *fmt, ...) noexcept {
    va_list a;
    va_start(a, fmt);
    log_("error", stderr, fmt, a);
    va_end(a);
 }
 
-void fatal(char const *fmt, ...) {
+void fatal(char const *fmt, ...) noexcept {
    va_list a;
    va_start(a, fmt);
    log_("fatal", stderr, fmt, a);
@@ -58,7 +58,7 @@ void fatal(char const *fmt, ...) {
 }
 
 #ifdef DEBUG_OUTPUT
-void logdebug(char const *fmt, ...) {
+void logdebug(char const *fmt, ...) noexcept {
    va_list a;
    va_start(a, fmt);
    log_("debug", stdout, fmt, a);
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
 
 //      _                   _                 _                       __     _
index 8b44852..276ec7a 100644 (file)
@@ -741,6 +741,7 @@ void controller::debug_dump_current_status() {
       puts("\b\b ");
    }
 }
+
 //
 //  ___  ___ _ __ ___  ___ _ __
 // / __|/ __| '__/ _ \/ _ \ '_ \