I have isolated a bug in the Error parser in CCS 5.5.0.00058 that did not seem to exist in CCS 5.1.0.09000. I believe is started in 5.2, but don't have an installation of that version to test. Everything works fine if we use CCS to generate the makefiles. However, we are trying to switch to CMake, and have run into a snag. When we do a build from the CMake generated makefiles, error markers never disappear, even after the error has been corrected and the files compiles successfully. Here is an example:
foo(int ii){}
void main()
{
//int ii=0;
foo(ii);
return;
}
This code generates an error, as expected. Then, when I un-comment the variable declaration, the error marker remains, even though the file compiles successfully.
I was finally able to write a makefile rule that removed the error marker as expected. It seems that the input file name must be the last item on the command line, and cannot be followed by any spaces. This seems incredibly fragile, and makes it very difficult to use externally generated makefiles.
#This rule works, because the input file is the very last item on the list.
hello.obj: hello.c
$(CC) -mv6400 --abi=coffabi -g --output_file="$@" --c_file hello.c
#this rule fails to remove the error marker, because of the space at the end.
hello1.obj: hello.c
$(CC) -mv6400 --abi=coffabi -g --output_file="$@" --c_file hello.c
#this rule is also fails
hello2.obj: hello.c
$(CC) -mv6400 --abi=coffabi -g --output_file="$@" --c_file=hello.c
#the parser should be okay with this rule. (5.1 is)
hello3.obj: hello.c
$(CC) --c_file=hello.c -mv6400 --abi=coffabi -g --output_file="$@"