summaryrefslogtreecommitdiff
path: root/indra/llcommon/llpreprocessor.h
diff options
context:
space:
mode:
authorMonty Brandenberg <monty@lindenlab.com>2014-05-22 22:08:54 +0000
committerMonty Brandenberg <monty@lindenlab.com>2014-05-22 22:08:54 +0000
commit060c728970dc78d30f2cebdbeda7e56ea8de46e2 (patch)
tree8f00ce1b3bd564bc6cb81a2bc39a081eb3deca35 /indra/llcommon/llpreprocessor.h
parentf8874d04b8ca238ee99dc464055295cff417a9b2 (diff)
parent644ca6a0f8a7759119814f88df93b8e838321a12 (diff)
Merge. Pull in viewer-release after release of 3.7.8
Diffstat (limited to 'indra/llcommon/llpreprocessor.h')
-rwxr-xr-xindra/llcommon/llpreprocessor.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h
index 7fdb537ab5..309165da7f 100755
--- a/indra/llcommon/llpreprocessor.h
+++ b/indra/llcommon/llpreprocessor.h
@@ -181,4 +181,25 @@
# define LL_COMMON_API
#endif // LL_COMMON_LINK_SHARED
+#if LL_WINDOWS
+#define LL_TYPEOF(exp) decltype(exp)
+#elif LL_LINUX
+#define LL_TYPEOF(exp) typeof(exp)
+#elif LL_DARWIN
+#define LL_TYPEOF(exp) typeof(exp)
+#endif
+
+#define LL_TO_STRING_HELPER(x) #x
+#define LL_TO_STRING(x) LL_TO_STRING_HELPER(x)
+#define LL_FILE_LINENO_MSG(msg) __FILE__ "(" LL_TO_STRING(__LINE__) ") : " msg
+#define LL_GLUE_IMPL(x, y) x##y
+#define LL_GLUE_TOKENS(x, y) LL_GLUE_IMPL(x, y)
+
+#if LL_WINDOWS
+#define LL_COMPILE_TIME_MESSAGE(msg) __pragma(message(LL_FILE_LINENO_MSG(msg)))
+#else
+// no way to get gcc 4.2 to print a user-defined diagnostic message only when a macro is used
+#define LL_COMPILE_TIME_MESSAGE(msg)
+#endif
+
#endif // not LL_LINDEN_PREPROCESSOR_H