diff --git a/bignum.h b/bignum.h
index 042f81151f9760b520d2fb8a24505d0df7e8cf6f..cabb4a20d3b69a947e4ef8f8f35526061951c425 100644
--- a/bignum.h
+++ b/bignum.h
@@ -28,7 +28,7 @@
 #include "includes.h"
 
 void m_mp_init(mp_int *mp);
-void m_mp_init_multi(mp_int *mp, ...);
+void m_mp_init_multi(mp_int *mp, ...) ATTRIB_SENTINEL;
 void bytes_to_mp(mp_int *mp, const unsigned char* bytes, unsigned int len);
 void sha1_process_mp(hash_state *hs, mp_int *mp);
 
diff --git a/dbutil.h b/dbutil.h
index fc01251002cea806498c06ab637a00efb56fa2bf..3af79f728627d84c5ff33cfbd6188421bc008752 100644
--- a/dbutil.h
+++ b/dbutil.h
@@ -35,14 +35,12 @@ void startsyslog();
 
 #ifdef __GNUC__
 #define ATTRIB_PRINTF(fmt,args) __attribute__((format(printf, fmt, args))) 
-#else
-#define ATTRIB_PRINTF(fmt,args)
-#endif
-
-#ifdef __GNUC__
 #define ATTRIB_NORETURN __attribute__((noreturn))
+#define ATTRIB_SENTINEL __attribute__((sentinel))
 #else
+#define ATTRIB_PRINTF(fmt,args)
 #define ATTRIB_NORETURN
+#define ATTRIB_SENTINEL
 #endif
 
 extern void (*_dropbear_exit)(int exitcode, const char* format, va_list param) ATTRIB_NORETURN;