diff options
Diffstat (limited to 'www/seamonkey/files/patch-bug779713')
-rw-r--r-- | www/seamonkey/files/patch-bug779713 | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/www/seamonkey/files/patch-bug779713 b/www/seamonkey/files/patch-bug779713 new file mode 100644 index 000000000000..cb721cba24a4 --- /dev/null +++ b/www/seamonkey/files/patch-bug779713 @@ -0,0 +1,77 @@ +diff --git mfbt/Alignment.h mfbt/Alignment.h +index e0843ca..353ec36 100644 +--- mozilla/mfbt/Alignment.h ++++ mozilla/mfbt/Alignment.h +@@ -9,11 +9,20 @@ + #ifndef mozilla_Alignment_h + #define mozilla_Alignment_h + ++#include "mozilla/Attributes.h" ++ + #include <stddef.h> + #include <stdint.h> + + namespace mozilla { + ++#if defined(MOZ_HAVE_CXX11_ALIGNAS) ++#define MOZ_ALIGNOF(T) alignof(T) ++#elif defined(__GNUC__) ++#define MOZ_ALIGNOF(T) __alignof__(T) ++#elif defined(_MSC_VER) ++#define MOZ_ALIGNOF(T) __alignof(T) ++#else + /* + * This class, and the corresponding macro MOZ_ALIGNOF, figures out how many + * bytes of alignment a given type needs. +@@ -32,6 +41,7 @@ public: + }; + + #define MOZ_ALIGNOF(T) mozilla::AlignmentFinder<T>::alignment ++#endif + + /* + * Declare the MOZ_ALIGNED_DECL macro for declaring aligned types. +@@ -43,7 +53,10 @@ public: + * will declare a two-character array |arr| aligned to 8 bytes. + */ + +-#if defined(__GNUC__) ++#if defined(MOZ_HAVE_CXX11_ALIGNAS) ++# define MOZ_ALIGNED_DECL(_type, _align) \ ++ alignas(_align) _type ++#elif defined(__GNUC__) + # define MOZ_ALIGNED_DECL(_type, _align) \ + _type __attribute__((aligned(_align))) + #elif defined(_MSC_VER) +diff --git mfbt/Attributes.h mfbt/Attributes.h +index d317766..ddb13da 100644 +--- mozilla/mfbt/Attributes.h ++++ mozilla/mfbt/Attributes.h +@@ -54,6 +54,9 @@ + # ifndef __has_extension + # define __has_extension __has_feature /* compatibility, for older versions of clang */ + # endif ++# if __has_extension(cxx_alignas) ++# define MOZ_HAVE_CXX11_ALIGNAS ++# endif + # if __has_extension(cxx_constexpr) + # define MOZ_HAVE_CXX11_CONSTEXPR + # endif +@@ -75,6 +78,9 @@ + # endif + #elif defined(__GNUC__) + # if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L ++# if MOZ_GCC_VERSION_AT_LEAST(4, 8, 0) ++# define MOZ_HAVE_CXX11_ALIGNAS ++# endif + # if MOZ_GCC_VERSION_AT_LEAST(4, 7, 0) + # define MOZ_HAVE_CXX11_OVERRIDE + # define MOZ_HAVE_CXX11_FINAL final +@@ -96,6 +102,7 @@ + # define MOZ_HAVE_NORETURN __attribute__((noreturn)) + #elif defined(_MSC_VER) + # if _MSC_VER >= 1800 ++# define MOZ_HAVE_CXX11_ALIGNAS + # define MOZ_HAVE_CXX11_DELETE + # endif + # if _MSC_VER >= 1700 |