summaryrefslogtreecommitdiff
path: root/thirdparty/zstd/common/compiler.h
diff options
context:
space:
mode:
authorJonathan Mannancheril <sneakyfish5.sneaky@gmail.com>2019-11-09 22:31:00 -0600
committerJonathan Mannancheril <sneakyfish5.sneaky@gmail.com>2019-11-09 23:20:49 -0600
commit55afd6e784d8dea6779f471d35a77e4d56bfaaca (patch)
tree46ffcce9b1bdeccd8fc05f16c2d4f39a0e4335d9 /thirdparty/zstd/common/compiler.h
parent94f00eb6c5323dff933a4985b60e8ebf9391f940 (diff)
Update zstd to 1.4.4
Diffstat (limited to 'thirdparty/zstd/common/compiler.h')
-rw-r--r--thirdparty/zstd/common/compiler.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/thirdparty/zstd/common/compiler.h b/thirdparty/zstd/common/compiler.h
index 6686b837d6..1877a0c1d9 100644
--- a/thirdparty/zstd/common/compiler.h
+++ b/thirdparty/zstd/common/compiler.h
@@ -61,6 +61,13 @@
# define HINT_INLINE static INLINE_KEYWORD FORCE_INLINE_ATTR
#endif
+/* UNUSED_ATTR tells the compiler it is okay if the function is unused. */
+#if defined(__GNUC__)
+# define UNUSED_ATTR __attribute__((unused))
+#else
+# define UNUSED_ATTR
+#endif
+
/* force no inlining */
#ifdef _MSC_VER
# define FORCE_NOINLINE static __declspec(noinline)
@@ -127,9 +134,14 @@
} \
}
-/* vectorization */
+/* vectorization
+ * older GCC (pre gcc-4.3 picked as the cutoff) uses a different syntax */
#if !defined(__clang__) && defined(__GNUC__)
-# define DONT_VECTORIZE __attribute__((optimize("no-tree-vectorize")))
+# if (__GNUC__ == 4 && __GNUC_MINOR__ > 3) || (__GNUC__ >= 5)
+# define DONT_VECTORIZE __attribute__((optimize("no-tree-vectorize")))
+# else
+# define DONT_VECTORIZE _Pragma("GCC optimize(\"no-tree-vectorize\")")
+# endif
#else
# define DONT_VECTORIZE
#endif