diff --git a/MagickCore/method-attribute.h b/MagickCore/method-attribute.h
index e8e30fc..6e4cb91 100644
--- a/MagickCore/method-attribute.h
+++ b/MagickCore/method-attribute.h
@@ -40,7 +40,7 @@
# pragma warning( disable: 4273 ) /* Disable the dll linkage warnings */
# endif
# if !defined(_MAGICKLIB_)
-# if defined(__GNUC__)
+# if defined(__clang__) || defined(__GNUC__)
# define MagickExport __attribute__ ((dllimport))
# else
# define MagickExport __declspec(dllimport)
@@ -49,7 +49,7 @@
# pragma message( "MagickCore lib DLL import interface" )
# endif
# else
-# if defined(__GNUC__)
+# if defined(__clang__) || defined(__GNUC__)
# define MagickExport __attribute__ ((dllexport))
# else
# define MagickExport __declspec(dllexport)
@@ -66,7 +66,7 @@
# endif
# if defined(_DLL) && !defined(_LIB)
-# if defined(__GNUC__)
+# if defined(__clang__) || defined(__GNUC__)
# define ModuleExport __attribute__ ((dllexport))
# else
# define ModuleExport __declspec(dllexport)
@@ -92,7 +92,7 @@
# pragma warning(disable : 4996)
# endif
#else
-# if __GNUC__ >= 4
+# if defined(__clang__) || (__GNUC__ >= 4)
# define MagickExport __attribute__ ((visibility ("default")))
# define MagickPrivate __attribute__ ((visibility ("hidden")))
# else
@@ -125,7 +125,7 @@
# define magick_unreferenced(x) /* nothing */
#endif
-#if (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
+#if defined(__clang__) || (((__GNUC__) > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
# define magick_alloc_size(x) __attribute__((__alloc_size__(x)))
# define magick_alloc_sizes(x,y) __attribute__((__alloc_size__(x,y)))
# define magick_cold_spot __attribute__((__cold__))