summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOscar Fuentes <ofv@wanadoo.es>2009-12-08 02:40:09 +0000
committerOscar Fuentes <ofv@wanadoo.es>2009-12-08 02:40:09 +0000
commit15c4bc673aa47fe21f4a15865020c914ec6d632e (patch)
treea7c904d138d955c5f6a399529dd2c0b3aebb32ca
parent60043f5ce68305bed4a809eb6a283d3f334ea560 (diff)
downloadbcm5719-llvm-15c4bc673aa47fe21f4a15865020c914ec6d632e.tar.gz
bcm5719-llvm-15c4bc673aa47fe21f4a15865020c914ec6d632e.zip
For VC++, define the ?INT*_C macros only it they are not yet defined.
Some compatibility updates like the Boost TR1 compatibility headers define them. Patch contributed by OvermindDL1! llvm-svn: 90828
-rw-r--r--llvm/include/llvm/System/DataTypes.h.cmake35
1 files changed, 27 insertions, 8 deletions
diff --git a/llvm/include/llvm/System/DataTypes.h.cmake b/llvm/include/llvm/System/DataTypes.h.cmake
index 180c86c1451..d9ca273fedb 100644
--- a/llvm/include/llvm/System/DataTypes.h.cmake
+++ b/llvm/include/llvm/System/DataTypes.h.cmake
@@ -118,14 +118,33 @@ typedef signed int ssize_t;
#define INT32_MAX 2147483647
#define INT32_MIN -2147483648
#define UINT32_MAX 4294967295U
-#define INT8_C(C) C
-#define UINT8_C(C) C
-#define INT16_C(C) C
-#define UINT16_C(C) C
-#define INT32_C(C) C
-#define UINT32_C(C) C ## U
-#define INT64_C(C) ((int64_t) C ## LL)
-#define UINT64_C(C) ((uint64_t) C ## ULL)
+/* Certain compatibility updates to VC++ introduce the `cstdint'
+ * header, which defines the INT*_C macros. On default installs they
+ * are absent. */
+#ifndef INT8_C
+# define INT8_C(C) C
+#endif
+#ifndef UINT8_C
+# define UINT8_C(C) C
+#endif
+#ifndef INT16_C
+# define INT16_C(C) C
+#endif
+#ifndef UINT16_C
+# define UINT16_C(C) C
+#endif
+#ifndef INT32_C
+# define INT32_C(C) C
+#endif
+#ifndef UINT32_C
+# define UINT32_C(C) C ## U
+#endif
+#ifndef INT64_C
+# define INT64_C(C) ((int64_t) C ## LL)
+#endif
+#ifndef UINT64_C
+# define UINT64_C(C) ((uint64_t) C ## ULL)
+#endif
#endif /* _MSC_VER */
/* Set defaults for constants which we cannot find. */
OpenPOWER on IntegriCloud