summaryrefslogtreecommitdiffstats
path: root/clang/lib/Headers/stdint.h
diff options
context:
space:
mode:
authorKen Dyck <ken.dyck@onsemi.com>2009-11-20 16:44:38 +0000
committerKen Dyck <ken.dyck@onsemi.com>2009-11-20 16:44:38 +0000
commit8dcc21420b6c6158526fb48f2add153f2d16d1a2 (patch)
tree0d20acd2e9b1b717a01bb6697c7b5eceface995f /clang/lib/Headers/stdint.h
parent764a5f3881b9d247bf8cd4743a9b4bb4f8a75c09 (diff)
downloadbcm5719-llvm-8dcc21420b6c6158526fb48f2add153f2d16d1a2.tar.gz
bcm5719-llvm-8dcc21420b6c6158526fb48f2add153f2d16d1a2.zip
Avoid unwanted expansion in macros that paste together INT<n>_MIN, INT<n>_MAX,
and UINT<n>_MAX defintions. llvm-svn: 89460
Diffstat (limited to 'clang/lib/Headers/stdint.h')
-rw-r--r--clang/lib/Headers/stdint.h29
1 files changed, 16 insertions, 13 deletions
diff --git a/clang/lib/Headers/stdint.h b/clang/lib/Headers/stdint.h
index 61afe0d45d9..fee7d3c1b82 100644
--- a/clang/lib/Headers/stdint.h
+++ b/clang/lib/Headers/stdint.h
@@ -605,33 +605,36 @@ typedef __uintn_t(__INTMAX_WIDTH__) uintmax_t;
/* C99 7.18.2.4 Limits of integer types capable of holding object pointers. */
/* C99 7.18.3 Limits of other integer types. */
+#define __INTN_MIN(n) __stdint_join3( INT, n, _MIN)
+#define __INTN_MAX(n) __stdint_join3( INT, n, _MAX)
+#define __UINTN_MAX(n) __stdint_join3(UINT, n, _MAX)
-#define INTPTR_MIN __stdint_exjoin3( INT, __INTPTR_WIDTH__, _MIN)
-#define INTPTR_MAX __stdint_exjoin3( INT, __INTPTR_WIDTH__, _MAX)
-#define UINTPTR_MAX __stdint_exjoin3(UINT, __INTPTR_WIDTH__, _MAX)
-#define PTRDIFF_MIN __stdint_exjoin3( INT, __PTRDIFF_WIDTH__, _MIN)
-#define PTRDIFF_MAX __stdint_exjoin3( INT, __PTRDIFF_WIDTH__, _MAX)
-#define SIZE_MAX __stdint_exjoin3(UINT, __SIZE_WIDTH__, _MAX)
+#define INTPTR_MIN __INTN_MIN(__INTPTR_WIDTH__)
+#define INTPTR_MAX __INTN_MAX(__INTPTR_WIDTH__)
+#define UINTPTR_MAX __UINTN_MAX(__INTPTR_WIDTH__)
+#define PTRDIFF_MIN __INTN_MIN(__PTRDIFF_WIDTH__)
+#define PTRDIFF_MAX __INTN_MAX(__PTRDIFF_WIDTH__)
+#define SIZE_MAX __UINTN_MAX(__SIZE_WIDTH__)
/* C99 7.18.2.5 Limits of greatest-width integer types. */
-#define INTMAX_MIN __stdint_exjoin3( INT, __INTMAX_WIDTH__, _MIN)
-#define INTMAX_MAX __stdint_exjoin3( INT, __INTMAX_WIDTH__, _MAX)
-#define UINTMAX_MAX __stdint_exjoin3(UINT, __INTMAX_WIDTH__, _MAX)
+#define INTMAX_MIN __INTN_MIN(__INTMAX_WIDTH__)
+#define INTMAX_MAX __INTN_MAX(__INTMAX_WIDTH__)
+#define UINTMAX_MAX __UINTN_MAX(__INTMAX_WIDTH__)
/* C99 7.18.3 Limits of other integer types. */
#define SIG_ATOMIC_MIN INT32_MIN
#define SIG_ATOMIC_MAX INT32_MAX
-#define WINT_MIN __stdint_exjoin3(INT, __WINT_WIDTH__, _MIN)
-#define WINT_MAX __stdint_exjoin3(INT, __WINT_WIDTH__, _MAX)
+#define WINT_MIN __INTN_MIN(__WINT_WIDTH__)
+#define WINT_MAX __INTN_MAX(__WINT_WIDTH__)
/* FIXME: if we ever support a target with unsigned wchar_t, this should be
* 0 .. Max.
*/
#ifndef WCHAR_MAX
-#define WCHAR_MAX __stdint_exjoin3(INT, __WCHAR_WIDTH__, _MAX)
+#define WCHAR_MAX __INTN_MAX(__WCHAR_WIDTH__)
#endif
#ifndef WCHAR_MIN
-#define WCHAR_MIN __stdint_exjoin3(INT, __WCHAR_WIDTH__, _MIN)
+#define WCHAR_MIN __INTN_MIN(__WCHAR_WIDTH__)
#endif
/* 7.18.4.2 Macros for greatest-width integer constants. */
OpenPOWER on IntegriCloud