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__))