I've recently updated the toolchain for C2000 from 6.4.4. to 6.4.5.
I noticed, that almost all include files were changed and the compiler now uses a modified STL Port version.
The problem is that if I compile a .cpp file that includes e.g. F2837xD_device.h from device support, then the compiler produces an error like:
"D:/ti/controlSUITE/device_support/F2837xD/v160/F2837xD_headers/include/F2837xD_device.h", line 114: error #20: identifier "_Bool" is undefined "D:/ti/controlSUITE/device_support/F2837xD/v160/F2837xD_headers/include/F2837xD_device.h", line 118: error #20: identifier "_Bool" is undefined
With 6.4.4. we solved the problem by adding the correct namespace identifier like:
// C99 defines boolean type to be _Bool, but this doesn't match the format of // the other standard integer types. bool_t has been defined to fill this gap. typedef _STD _Bool bool_t; //typedef _Bool bool_t; //used for a bool function return status typedef _STD _Bool status_t; //typedef _Bool status_t;
Because we think that _Bool should be defined in namespace std (for C++) and with no namespace for C code. This is not longer working with 6.4.5. because yvals.h is gone (which defined _STD empty for C code in 6.4.4.).
Is there a workaround for _Bool being not defined when a cpp file is compiled that includes any file from the device support folder?