Other Parts Discussed in Thread: TEST2
Tool/software: Code Composer Studio
We're using with ti-cgt-arm_18.1.2.LTS (in -c99 mode) with CCS v8.1.0.00011.
Compiling our source code seems to be working properly. However, when using CCS v8.1 to edit / view our code using macros from the standard-library, when the IDE deciphers the macros it is not processing the #included files in the same way that the compiler is.
For example, using the following code:
#include <stdint.h>
static int64_t foobar = INT64_C(1099511627776);
// CCS v8.1 presents the previous line as if it pre-processes to:
// static int64_t foobar = ((int_least64_t)(1099511627776));
//
// ti-cgt-arm_18.1.2.LTS pre-processes that line as:
// static int64_t foobar = (1099511627776LL);
If I select INT64_C and Explore Macro Expansion using Ctrl+=, the pop-up shows:
#define INT64_C(value) ((int_least64_t)(value))
Rather than the actual macro definition from ti-cgt-arm_18.1.2.LTS/include/machine/_stdint.h of:
#define INT64_C(c) (c ## LL)
Fortunately, the .pp output from the compiler shows the proper decoding:
static int64_t foobar = (1099511627776LL);
Also note that dragging the source file onto CCS's Include browser, shows:
test2.c -> stdint.h -> sys/stdint.h
Where the icon for "sys/stdint.h" has a slash through it...whatever that's supposed to mean.
Presumably related is that the following lines in include/stdint.h show up as "inactive" (bluish-grey background) when include/stdint.h is opened up from within the Include Browser:
#if __has_include(<sys/stdint.h>)
#include <sys/stdint.h>
Suggesting that CCS 8.1 doesn't understand "__has_include()"?
--thx