get rid of undefined behavior sanitizer warning
diff --git a/skeletons/asn_system.h b/skeletons/asn_system.h
index 2febb71..83266ef 100644
--- a/skeletons/asn_system.h
+++ b/skeletons/asn_system.h
@@ -104,7 +104,7 @@
 
 #endif	/* _WIN32 */
 
-#if	__GNUC__ >= 3
+#if	__GNUC__ >= 3 || defined(__clang__)
 #ifndef	GCC_PRINTFLIKE
 #define	GCC_PRINTFLIKE(fmt,var)	__attribute__((format(printf,fmt,var)))
 #endif
@@ -120,6 +120,12 @@
 #endif
 #endif
 
+#if defined(__clang__)
+#define CLANG_NO_SANITIZE(what)    __attribute__((no_sanitize(what)))
+#else
+#define CLANG_NO_SANITIZE(what)
+#endif
+
 /* Figure out if thread safety is requested */
 #if !defined(ASN_THREAD_SAFE) && (defined(THREAD_SAFE) || defined(_REENTRANT))
 #define	ASN_THREAD_SAFE