diff --git a/thirdparty/sdd.c b/thirdparty/sdd.c
index a926dea..1ac6e6b 100644
--- a/thirdparty/sdd.c
+++ b/thirdparty/sdd.c
@@ -54,12 +54,13 @@ typedef struct sdd {
 #if defined(__GNUC__) || defined(__clang__)
 #if __has_attribute(noinline) && __has_attribute(noclone)
 #define SDD_NOINLINE __attribute__((noinline, noclone))
-#else
+#elif __has_attribute(noinline)
 #define SDD_NOINLINE __attribute__((noinline))
 #endif
 #elif defined(_MSC_VER)
 #define SDD_NOINLINE __declspec(noinline)
-#else
+#endif
+#ifndef SDD_NOINLINE
 #define SDD_NOINLINE
 #endif