Skip to content

Commit 8cd67ff

Browse files
committed
default int limits
1 parent b53781a commit 8cd67ff

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

.settings/language.settings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
66
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
77
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser" keep-relative-paths="false" name="CDT GCC Build Output Parser" parameter="([^/\\\\]*)((g?cc)|([gc]\+\+)|(clang))" prefer-non-shared="true"/>
8-
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-1708704441941789092" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
8+
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="329158278068347927" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
99
<language-scope id="org.eclipse.cdt.core.gcc"/>
1010
<language-scope id="org.eclipse.cdt.core.g++"/>
1111
</provider>

include/xchange.h

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
#define __STDC_LIMIT_MACROS ///< for fixed-width integer limits
1616

17-
#include <limits.h>
1817
#include <stdint.h>
18+
#include <limits.h>
1919

2020
/// API major version
2121
#define XCHANGE_MAJOR_VERSION 1
@@ -98,33 +98,51 @@ typedef int XType; ///< SMA-X data type.
9898
#define X_STRUCT 'X' ///< \hideinitializer XType for an XStructure or array thereof
9999
#define X_FIELD '-' ///< \hideinitializer XType for an XField or array thereof
100100

101+
#ifndef INT16_MAX
102+
# define INT16_MAX 32767 ///< Largest 16-bit integer value
103+
#endif
104+
105+
#ifndef INT32_MAX
106+
# define INT32_MAX 2147483647 ///< Largest 32-bit integer value
107+
#endif
108+
109+
#ifndef INT64_MAX
110+
# define INT64_MAX 9223372036854775807LL ///< Largest 64-bit integer value
111+
#endif
112+
101113
// Platform-specific width integer types
102114
#if SHRT_MAX == INT16_MAX
103115
# define X_SHORT X_INT16 ///< \hideinitializer native `short` XType
104116
#elif SHRT_MAX == INT32_MAX
105117
# define X_SHORT X_INT32 ///< \hideinitializer native `short` XType
106-
#else
118+
#elif SHRT_MAX == INT64_MAX
107119
# define X_SHORT X_INT64 ///< \hideinitializer native `short` XType
120+
#else
121+
# error "xchange.h: Unmatched SHRT_MAX"
108122
#endif
109123

110124
#if INT_MAX == INT16_MAX
111125
# define X_INT X_INT16 ///< \hideinitializer native `int` XType
112126
#elif INT_MAX == INT32_MAX
113127
# define X_INT X_INT32 ///< \hideinitializer native `int` XType
114-
#else
128+
#elif INT_MAX == INT64_MAX
115129
# define X_INT X_INT64 ///< \hideinitializer native `int` XType
130+
#else
131+
# error "xchange.h: Unmatched INT_MAX"
116132
#endif
117133

118134
#if LONG_MAX == INT32_MAX
119135
# define X_LONG X_INT32 ///< \hideinitializer native `long` XType
120-
#else
136+
#elif LONG_MAX == INT64_MAX
121137
# define X_LONG X_INT64 ///< \hideinitializer native `long` XType
138+
#else
139+
# error "xchange.h: Unmatched LONG_MAX"
122140
#endif
123141

124142
#if !defined(LLONG_MAX) || LLONG_MAX == INT64_MAX
125143
# define X_LLONG X_INT64 ///< \hideinitializer native `long long` XType
126144
#else
127-
# define X_LLONG X_UNDEFINED ///< \hideinitializer no native `long long` XType
145+
# define X_LLONG X_UNDEFINED ///< \hideinitializer no native `long long` XType
128146
#endif
129147

130148
#define X_SEP ":" ///< sepatator for patterning of notification channels, e.g. "changed:<table>:<key>"

0 commit comments

Comments
 (0)