Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenlib/BLI_utildefines.h')
-rw-r--r--source/blender/blenlib/BLI_utildefines.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/source/blender/blenlib/BLI_utildefines.h b/source/blender/blenlib/BLI_utildefines.h
index 9e1297658b8..ef2c61cc45a 100644
--- a/source/blender/blenlib/BLI_utildefines.h
+++ b/source/blender/blenlib/BLI_utildefines.h
@@ -48,11 +48,26 @@
#endif
/* min/max */
+#if defined(__GNUC__) || defined(__clang__)
+
+#define MIN2(x, y) ({ \
+ typeof(x) x_ = (x); \
+ typeof(y) y_ = (y); \
+ ((x_) < (y_) ? (x_) : (y_)); })
+
+#define MAX2(x, y) ({ \
+ typeof(x) x_ = (x); \
+ typeof(y) y_ = (y); \
+ ((x_) > (y_) ? (x_) : (y_)); })
+
+#else
#define MIN2(x, y) ((x) < (y) ? (x) : (y))
+#define MAX2(x, y) ((x) > (y) ? (x) : (y))
+#endif
+
#define MIN3(x, y, z) (MIN2(MIN2((x), (y)), (z)))
#define MIN4(x, y, z, a) (MIN2(MIN2((x), (y)), MIN2((z), (a))))
-#define MAX2(x, y) ((x) > (y) ? (x) : (y))
#define MAX3(x, y, z) (MAX2(MAX2((x), (y)), (z)))
#define MAX4(x, y, z, a) (MAX2(MAX2((x), (y)), MAX2((z), (a))))