This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/CCSTUDIO: CCS 8.1 decoding #includes incorrectly within IDE; compiler itself works.

Expert 1226 points
Part Number: CCSTUDIO
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