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.

Do you use the strict ANSI (-ps) mode?

If so, do you use any of the following features:

  • C
    • C++ style end of line comments ('//')
    • inline keyword
    • asm keyword
    • Casts of pointer --> integer such as (int)(char *)0
  • C/C++
    • restrict keyword
    • near keyword
    • far keyword
    • TI-specific keywords (ioport, shared, sharedpp, trap, interrupt, reentrant, cregisters, ioport, and onchip)

If you’ve answered yes to both, a future change to the compiler tools might affect you. We are changing the way our compiler’s strict mode behaves so that it conforms better to the accepted language standards on which it is based. This means that the features listed above will be either rejected as invalid, or at the very least, result in a diagnostic made by the compiler.


Note that for keywords, alternatives starting with two underlines ‘__’ will still be allowed, as these keywords are reserved for the compiler’s use. This also includes things like function, variable, and type attributes, GCC features which will not be affected by strict mode. Users who wish to regain prior behavior need only add a #define clause such as this:

#define restrict __restrict


In addition, for failure modes which do not involve keywords but rather syntax acceptance, the current system of options that suppress diagnostics such as -pds and -pdsw/-pdsr will still work to allow compilation to continue and complete.

The two standards currently supported by TI are C++03 and C89. This update will also add a C99 language mode (--c99), which will be supported completely as far as language features, but will be lacking in runtime library support. More on C99 will be detailed at when the release is scheduled.

  • Hi,

    I've tried to use the strict mode but I encountered a severe drawback: I use headers provided by TI, such as DSP2803x_EPwm_defines.h or IQmathLib.h, and they generate literally thousands of warnings. Am I missing something?